logrotate日志滚动切割删除
1. 安装 logrotate
1 | yum install -y logrotate |
2. 创建一个 logrotate 配置文件
假设你要管理 /var/log/myapp/app.log,可以在 /etc/logrotate.d/ 下新建:
1 | vi /etc/logrotate.d/myapp |
内容示例:
1 | /var/log/myapp/app.log { |
3. 手动测试配置
执行:
1 | logrotate -d /etc/logrotate.d/myapp |
-d是 debug 模式,不会真正执行,只显示动作。
确认没问题后再执行:
1 | logrotate -f /etc/logrotate.d/myapp |
-f表示强制执行一次切割。
4. 系统默认调度
CentOS 7 默认会通过 cron.daily 调用 /etc/cron.daily/logrotate,所以只要配置好了,系统会自动触发。
但注意:默认 logrotate 是 每天执行一次,所以如果你只依赖 size 100M 触发,可能会延迟到第二天才切割。
如果想要更及时(例如每小时),可以加个 cron job:
1 | echo "0 * * * * /usr/sbin/logrotate /etc/logrotate.conf" >> /etc/crontab |