原创日志

此脚本实现nginx日志文件按天自动切割,并且删除一个月前的日志

[ 2013-04-26 15:22:20 | 作者: admin ]
字号: | |
p.s. 需要注意的是,一开始用root手动运行脚本可以运行,但是自动运行发现无法自动建立access.log,结果查看是目录权限问题。crontab配置中使用root运行脚本。
logs目录的权限必须和nginx配置的user nfsnobody nfsnobody权限一致,这样nginx 才能自动再建立access.log
chown -R nfsnobody:nfsnobody logs


自动运行的脚本 /home/tools/nginx_log_auto_split.sh
在logs目录下面建立old目录,将每天的日志移入压缩。
         #!/bin/bash
         # This script run at 23:59

         # The Nginx logs path
         logs_path="/usr/local/nginx.0.8.15/logs"
         mkdir -p ${logs_path}/old/

         cd ${logs_path}
         mv access.log ./old/access.$(date +%Y%m%d).log
         kill -USR1 `cat /usr/local/nginx.0.8.15/nginx.pid`

         find ${logs_path}/old/ -name "access.*" -type f -ctime +90 -exec rm {} \; > /dev/null 2>&1




保存脚本到本地并把脚本加入crontab每天23:59运行
         vi /etc/crontab
         末尾加入以下:
         59 23 * * * root /bin/bash /home/tools/nginx_log_auto_split.sh

最后重新导入配置生效
service crond restart
[最后修改由 admin, 于 2013-04-29 11:12:13]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2014

这篇日志没有评论。

此日志不可发表评论。