Nginx Web服务器每天会产生大量的访问日志,而且不会自动地进行切割,如果持续数天访问,将会导致该 access.log日志文件容量非常大,不便于SA查看相关的网站异常日志。
可以基于shell脚本结合 crontab计划任务对 nginx日志进行自动、快速的切割,其切割的方法使用mv命令即可,在auto. nginx log.sh文件中写入以下脚本,代码如下
#!/bin/bash
#auto mv nginx log shell
#by author yunwei
S_LOG=/usr/local/nginx/logs/access.log
D_LOG=/data/backup/date +%Y%m%d
echo -e “\033[32mPlease wait start cut shell scripts…\033[1m”
sleep 2
if [ ! -d $D_LOG ];then
mkdir -p $D_LOG
fi
mv $S_LOG $D_LOG
kill -USR1 cat /usr/local/nginx/logs/nginx.pid
echo “-------------------------------------------”
echo “The Nginx log Cutting Successfully!”
echo “You can access backup nginx log $D_LOG/access.log files.”
最后在crontab中添加如下代码即可,每天晚上自动去切割日志:
0 0 * * * /bin/sh/data/sh/auto_nginx_log.sh >>/tmp/nginx_cut.log 2>&1