对于nginx的日志文件,尤其是访问日志,如果我们不尽一切努力去解决,这个文档最终可能会越来越庞大,比如下面这个:
这时候发现异常可能越来越不方便查看日志,或者用“GoAccess”等专用工具分析日志。所以每天定时对nginx原木进行激光切割压缩是很有必要的。
二完成我的想法是每晚12点定时重启脚本。脚本的内容是根据当前日期对当前nginx日志进行重命名,然后进行压缩,最后创建空缺失的nginx日志文件,重新加载nginx。
[root@localhost ~]# cd /usr/local [root@localhost local]# mkdir scripts [root@localhost scripts]# vim nginxLog.sh其内容如下:
#!/bin/sh cd /usr/local/nginx/logs/ newAccessLog="access`date %Y-%m-%d`.log" newErrorLog="error`date %Y-%m-%d`.log" mv access.log $newAccessLog mv error.log $newErrorLog #建立日志文件 touch access.log error.log #reload Nginx /etc/init.d/nginx reload #压缩日志文件 tar -zcvf $newAccessLog.tar.gz $newAccessLog --remove-files tar -zcvf $newErrorLog.tar.gz $newErrorLog --remove-files向脚本添加可执行管理权限:
[root@localhost scripts]# chmod ax nginxLog.sh加上计划任务(每天23:40实施):
[root@localhost scripts]# cd /var/spool/cron/ [root@localhost cron]# echo "40 23 * * * /usr/local/scripts/nginxLog.sh" > root查询日常任务:
[root@localhost cron]# crontab -l这样第二天就能看到实际效果了。最终的实际效果如下图所示:
注意:如果有几个nginx日志文件,请考虑把我的脚本改成更通用的方式。
附:nginx日志定期执行清理脚本:
[root@localhost scripts]# vim /usr/local/scripts/cleanNginxLog.sh其内容如下:
#!/bin/sh cd /usr/local/nginx/logs/ find . -name "*`date -d '-1米onths' %Y-%m-%d`*" -type f | xargs -I {} rm -f {}注意:以上脚本的意思是删除当天前一个月的日志文件。
向脚本添加可执行管理权限:
[root@localhost scripts]# chmod ax /usr/local/scripts/cleanNginxLog.sh添加一个计划任务(每天0:30执行):
[root@localhost scripts]# echo "30 0 * * * /usr/local/scripts/cleanNginxLog" >> /var/spool/cron/root欢迎分享,转载请注明来源:内存溢出
评论列表(0条)