1、脚本如下:
/gdsfapps/flgw/logs/nginx/*.log{
missingok
dateext
notifempty
daily
rotate 7
sharedscripts
postrotate
if [ -f /usr/local/nginx/logs/nginx.pid ]; then
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
fi
endscript
}
2、脚本说明:
/gdsfapps/flgw/logs/nginx/这个是nginx日志所在目录。/usr/local/nginx/logs/nginx.pid。这个是pid文件所在的绝对路径位置,其他配置项这里就不做说明了。
然后用crontab -e命令。将0 0 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/nginx写入到定时任务
切分之后就可以在日志目录看到如下所示的效果图:
另外也可以通过下面这个脚本来对Nginx日志进行切分,脚本如下:
#! /bin/bash
## 假设nginx的日志存放路径为/data/logs/
d=`date -d "-1 day" +%Y%m%d` #定义日期格式
logdir="/data/logs" #日志所在目录
nginx_pid="/usr/local/nginx/logs/nginx.pid" #pid所在目录
cd $logdir
for log in `ls *.log`
do
mv $log $log-$d
done
find /data/logs/ -type f -mtime +7 -exec rm -f {} \; #删除7天之前产生的日志
/bin/kill -HUP `cat $nginx_pid`