服务器经常会产生各种各样的日志文件,我们需要定期清理
日志的分类
系统日志
应用日志
系统日志
例如系统的history 历史信息 crontab的运行日志 一般系统日志系统都帮我们运维好了,不需要额外配置
应用日志
例如nginx 的access 和 error 日志 ,php框架的运行日志,这些日志是我们排查问题的有力证据
工具logrotate
logrotate是什么
logrotate是大多数linux系统自带的日志切割工具
logrotate的适用场景
logrotate常用来切割仍在被写的“动态”文件,它支持 按时间间隔或文件大小 来触发文件的自动切分(automatic rotation)
实战
按天保存一周的Nginx日志压缩文件,保留30天,配置文件为「/etc/logrotate.d/nginx」
最后代码如下(本人ubuntu系统)
/data/logs/nginx/*.log { daily dateext missingok dateformat %Y%m%d extension .log rotate 30 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` endscript }
手动执行(-d debug模式 )
$ logrotate -d -f /etc/logrotate.d/nginx
具体logrotate更多用法请自行学习