nginx访问日志的切割

上一篇中讲解了nginx访问日志的配置,但是配置的访问日志是一个文件的,日积月累这个文件很大,不利于访问日志的分析和存储。用脚本对文件进行切割。

设置日志定期截取一是为了方便查阅,二是为了I/O拥塞(截止到目前笔者维护过的服务器中单台服务器日访问日志大小就达到1.6G,如果不定期截取,由于文件内容较大,后期对文件进程查询、移动时将会严重影响系统性能)。nginx日志格式不像apache、resin那么人性化,nginx访问日志无法在nginx的配置文件中设置成按日期格式存储,目前常见的设置方法主要靠第三方工具或者脚本来实现,下面我们就通过一个最简单的脚本进行实现

#vi /etc/nginx_access_log.sh
#!/bin/bash 
mv  /home/yiwu/nginxlogs/access1.log  /home/yiwu/nginxlogs/access1_`date +%Y%m%d`.log
/usr/local/openresty/nginx/sbin/nginx -s reload

脚本说明:这个脚本主要实现两个功能,一是将nginx访问日志按照日期移动到目的地,而是移动完毕后让nginx重新生成日志文件

#chmod +x /etc/nginx_access_log.sh

使用cron服务定期执行该脚本,下面设置成的是每晚23点59执行,这样nginx访问日志正好记录的是全天的访问记录

#crontab -e

59 23 * * * /etc/nginx_access_log.sh

猜你喜欢

转载自5keit.iteye.com/blog/2337164