在nginx日志切割方面,我的方法和其他人用的方法有一些不一样,但对于我这种方法,如果有人觉得不好,可以给我提出,谢谢
nginx日志切割,我是直接写的一个简单的shell实现的,内容如下:
代码如下 | 复制代码 |
mv /usr/local/nginx/logs/abc.log /www/logbak/abc`date +%Y%m%d%H%M`.log /usr/local/nginx/sbin/nginx -s reload |
这样执行以后,就会在/www/logbak目录下生成日志文件,你可以在/etc/crontab 里把执行这个shell的任务写上去,可以一小时执行一次,也可以每天执行一次,也可以一周执行一次,这个就看自己的需要了
我这里是每天早上8点执行,生成的文件格式是这样的:abc201111090801.log
所以我就根据文件的规律,找到删除日志文件的方法
代码如下 | 复制代码 |
rm -f /www/logbak/abc`date '+%Y%m%d' -d ' -10 day'`*.log |
这个也写到shell脚本里,然后每天执行一次,每天就回去/www/logbak目录里找当前时间之前10天的文件,并删除
再补充一个例子
1. 定义日志轮滚策略
代码如下 | 复制代码 |
# vim nginx-log-rotate /data/weblogs/*.log { |
[warning]/data/weblogs/*.log使用通配符时,/data/weblogs/目录下的所有匹配到的日志文件都将切割。如果要切割特定日志文件,就指定到该文件。[/warning]
2. 设置计划任务
代码如下 | 复制代码 |
# vim /etc/crontab 59 23 * * * root ( /usr/sbin/logrotate -f /PATH/TO/nginx-log-rotate) |
这样每天23点59分钟执行日志切割。