Nginx日志会随着访问量而变大,较大的日志会影响分析日志时对日志的分析和处理,我们可以使用shell对Nginx日志进行定时分割,以周或者天,对于时间久的日志可以定时删除,减小磁盘的浪费
代码:
# cat logrotate.sh #!/bin/bash #rotate Nginx logs #writen by Aiker PATH=$PATH://usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin logs_path=/var/log/Nginx d=$(date -d "-1 day" +%F) mv $logs_path/access.log $logs_path/access_${d}.log mv $logs_path/error.log $logs_path/error_${d}.log #向Nginx主进程发送USR1信号重新打开日志文件 kill -USR1 $(cat /var/run/Nginx.pid)
针对多个日志的切割:
#!/bin/bash #rotate Nginx logs #writen by Aiker PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin logs_path=/var/log/Nginx d=$(date -d "-1 day" +%F) cd ${logs_path} for logs in `ls *.log` do mv $logs $logs-$d done #向Nginx主进程发送USR1信号重新打开日志文件也可以:/bin/kill -HUP `cat $Nginx_pid` kill -USR1 $(cat /var/run/Nginx.pid)
定时切割日志:
crontab -e
0 0 * * 0 /root/script/logrotate.sh > /dev/null 2>&1
# ll /var/log/Nginx/ total 64 -rw-r--r-- 1 Nginx root 3205 Feb 12 11:42 access_2018-02-11.log -rw-r--r-- 1 Nginx root 41951 Feb 12 11:53 access.log -rw-r--r-- 1 Nginx root 14441 Feb 9 10:12 error_2018-02-11.log -rw-r--r-- 1 Nginx root 0 Feb 12 11:43 error.log