参考1,来自yhc166188
参考2,来自冻梨不是梨
参考3,m0_54853503
只是简述一下logrotate的使用流程,具体用法可以看上面的参考
logrotate程序是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用。可以节省磁盘空间。
1.安装
Linux系统可能默认安装了logrotate工具。
2.配置
- 默认配置文件位置:/etc/logrotate.conf,默认配置文件中有include语句,会引用其它位置的配置文件,如
/etc/logrotate.d/
目录下的文件。 - 状态文件位置:/var/lib/logrotate.status,在这个文件中,会记录上次文件的运行状态,可以查看查看各log文件的具体执行情况。
配置文件里一定要配置rotate 文件数目这个参数。如果不配置默认是0个,也就是只允许存在一份日志,刚切分出来的日志会马上被删除。
新建配置文件,如/etc/logrotate.d/mytest1
,内容如下:
/opt/docker-ws/nginx/logs/*.log {
daily
rotate 30
copytruncate
notifempty
missingok
dateext
}
说明:
-
/opt/docker-ws/nginx/logs/*.log
: 是log文件的路径 - daily:每天分割一次
- rotate 30: 保留最近30个分割后的日志文件
- notifempty: 当日志文件为空时不分割
- dateext: 切割后的文件添加日期作为后缀
3.运行
- 检查配置文件有没有错误:
logrotate -d /etc/logrotate.d/mytest1
- 执行转储并显示过程:
logrotate -v /etc/logrotate.d/mytest1
如果执行顺利的话,就可以在日志文件旁边看到转储的文件了。
4.定时运行
通过crontab建立定时任务
- 运行命令
crontab -e
,进入 vim 模式,进行编辑。 - 添加
59 23 * * * logrotate -f /etc/logrotate.d/xxx
,这样每天23点59分就会进行日志分割 - 重启crontab:
systemctl restart crond
网友评论