标签:为什么 exp usr 表示 配置 nginx 开始 执行时间 rip
背景:为了避免日志文件过大不方便查看,准备对日志切割,我用的linux系统自带的logrotate进行切割,具体切割参数请查询logrotate相关资料,下面只写出切割的配置,也是网上参考别人的文章的方法,但遇到了问题新建文件
vi /etc/logrotate.d/nginx.log
/日志所在路径/*.log
{
daily
rotate 60
dateext
create 644 root root
postrotate
/bin/kill -HUP cat /opt/phpad/var/run/nginx.pid 2> /dev/null
2> /dev/null || true
endscript
}
问题:1.无法控制每天切割的时间,默认都是在夜里3点多
2.日志切割之后,文件是生成了,可总是大小为0,发现nginx.pid丢失,为什么会丢失,开始思考这个问题
解决方法:经过多方查找资料
真实的延迟RANDOM_DELAY+delay。这里的延迟是5分钟,加上上面的RANDOM_DELAY,所以实际的延迟时间是5-50之间,开始时间为03-22点,那么一般就是在03:05-03:50之间执行。
如果RANDOM_DELAY=0,那么表示准确延迟5min,即03:05执行
这就是为什么总是在3点多切割的原因
2.调用nginx -s reopen用来打开日志文件,这样nginx会把新日志信息写入这个新的文件中
这样完成了日志的切割工作, 同时切割过程中没有日志的丢失。
kill -USR1 等于 nginx -s reopen
切割成功的配置
{
daily
rotate 60
dateext
create 644 root root
postrotate
if [ -f /export1/logs/nginx.pid ]; then
kill -USR1 cat /export1/logs/nginx.pid
fi
endscript
}
标签:为什么 exp usr 表示 配置 nginx 开始 执行时间 rip
原文地址:http://blog.51cto.com/12107094/2318611