随着访问量的增加,nginx的日志会越来越多,日志体积会越来越大,不便于运维人员查看。切割可以以天为单位,如果日志每天有几百个G或者几个T的话。则可以按需每半天或者每小时对日志切割。
1、nginx日志切割shell
/usr/local/nginx/sbin
vi cut_my_log.sh
#!/bin/bash LOG_PATH="/usr/local/nginx/logs/" RECORD_TIME=$(date +%Y-%m-%d+%H:%M) PID=/usr/local/nginx/logs/nginx.pid mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log # 向Nginx主进程发送信号,用于重新打开日志文件 kill -USR1 `cat $PID`
这里为了能尽快看到效果,以分钟为单位进行切割。
2、手动执行my_cut_log.sh
chmod +x cut_my_log.sh
./cut_my_log.sh
缺点:每次需要手动执行shell脚本
3、定时执行my_cut_log.sh
1) 安装定时任务
yum install crontabs
启动crontab
service crond start
查看crontab是否启动
service crond status
查看定时任务列表
crontab -l
2) crontab -e 添加一个新任务
*/1 * * * * /usr/local/nginx/sbin/cut_my_log.sh
然后重启crontab
systemctl restart crond.service
这样自动分割nginx日志就设置好了。
作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!