以下是nginx日志切割的脚本,按天切割
$(date +%d) 获取当月第几天,如5月18日,就会取出来是18
这样,可以做到按月循环,只保留一个月的日志,而不用担心去清理过期的日志了
脚本请在crontab中设置执行,如在每天23点59分是执行日志切割脚本
59 23 * * *

以下红色字是脚本内容:
savepath_log保存日志的路径
nglogs当前nginx默认的日志,如果你是装在/usr/local/nginx目录,那日志就和脚本上一样
#/bin/bash
#Site:www.linuxyw.com
#Email:63780668@qq.com
savepath_log='/var/linuxyw-log/nginx'
nglogs='/usr/local/nginx/logs'
if [ ! -d ${savepath_log} ]
then
mkdir -p ${savepath_log}
fi
mv $nglogs/access.log  $savepath_log/access.$(date +%d).log
mv  $nglogs/error.log  $savepath_log/error.$(date +%d).log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

如果直接复制的话,要注意字体编码的问题,很多windows上的脚本上传到linux就出错,还是因为编码问题

日志下载:http://www.linuxyw.com/scripts/nginxlog.sh
建议直接在linux中用wget下载,如:
wget  http://www.linuxyw.com/scripts/nginxlog.sh

本文来自linux系统运维http://www.linuxyw.com/a/Shell/Shell/20130518/388.html