VPS永久了就会发现Nginx的日志变得无比庞大,有时要查看某天的访问日志变得特别麻烦,但是又不能停止记录日志,这样一旦出现问题排查起来就显得特别麻烦,所以参照许多资料写了个Nginx的日志分割脚本,只要在服务器上设置好定时运行这个脚本,即可自动按天来分割日志,并将超过30天的日志自动删除。

作者源下载地址:http://jayshao.com/file/cut_nginx_logs.sh
DBank下载:http://dl.dbank.com/c088akt6vy

以下是一些重要参数的含义:
#设置nginx日志文件目录路径
log_files_path=”/home/wwwlogs/”
#日志文件将会存放到/home/wwwlogs/年/月/日志文件名_年月日.log
log_files_dir=${log_files_path}$(date -d “yesterday” +”%Y”)/$(date -d “yesterday” +”%m”)
#设置要切割的日志的名字,如果日志目录下面的日志文件名为jayshao.com.log,则填写jayshao.com,每个日志名用空格分隔
log_files_name=(jayshao.com)
#设置nginx文件的位置
nginx_sbin=”/usr/local/nginx/sbin/nginx”
#设置日志保存的时间,天
save_days=30

将nginx日志切割脚本下载到/root/下面。再添加自动执行,执行:crontab -e
输入:00 00 * * * /bin/bash /root/cut_nginx_logs.sh
这样每天0点整就会自动开始切割脚本啦~

原文地址:http://jayshao.com/2011/07/nginx-log-cut/