nginx日志文件切割

nginx日志文件切割

经验文章nimo972025-06-24 17:05:245A+A-

使用脚本对nginx日志文件进行按天切割

#!/bin/bash
LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date -d -1day +%Y%m%d)
cd ${LOGS_PATH}
#按天切割日志
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
#向 Nginx 主进程发送 USR1 信号,重新打开日志文件,否则会继续往mv后的文件写内容,导致切割失败
kill -USR1 `ps axu | grep nginx| grep master | awk '{print $2}'`
#压缩
gzip -9 ${LOGS_PATH}/access_${YESTERDAY}.log
#删除7天前的日志
find . -mtime +7 -name "*20[1-9][3-9]*" | xargs rm -f
exit 0

然后配置crontab进行每天切割使用

使用logrotate对nginx日志进行切割

[root@iZ25b31bdp0Z gitlab-8.5.7-0]# cat /etc/logrotate.d/nginx 
/var/log/nginx/*log {
    create 0644 nginx nginx
    daily         //可以选择weekly,monthly,切割周期
    rotate 10    //一次存储10个文件,超出数量最早生成的文件会被删除
    missingok    //忽略错误
    notifempty   //空文件不存储
    compress    //启动压缩
    sharedscripts
    postrotate
        /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
    endscript  
//其它命令执行完成后,再执行postrotate与endscript中间的命令,两者是固定格式
}
点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7