Nginx日志切割,其必要性也没必要说那么多了,主要记录几种Nginx日志切割的方法,其实原理都大同小异,主要还是通过每天把日志按照日期备份的方式,使用kill -USR1指令重新生成新的日志。可以完全通过Shell脚本实现,也可以通过Shell+Cron定时任务实现,还可以使用logrotate日志轮询来进行分割。
####纯Shell实现
1 | #!/bin/bash |
####Shell+Cron实现
其实这种方法只是将上面的脚本case以下的部分体换成了cron定时任务,唯一的不通在于,上面的脚本执行之后,会在每隔24小时之后的时刻执行,而cron是可以指定一天的任一时刻的。
crontab -e1
0 0 * * * /usr/local/sbin/logrotate-nginx.sh > /dev/null 2>&1
每天的凌晨0点执行。
####logrotate日志轮询
在/etc/logrotate.d/文件下,有很多日志轮询配置文件,这里的日志全都可以实现日志的自动切割,同样也可以把nginx的日志切割配置文件放在这里来实现目的。1
vim /etc/logrotate.d/nginx
1 | /data/Application/nginx/logs/access.log #要切割的nginx日志所在目录 |