nginx日志切割

脚本:

#定义日志的源路径,即nginx的默认log路径
source_log_path=/usr/local/nginx/logs
#定义保存后的路径位置
dest_log_path=/usr/local/nginx/logs_old
#定义log文件的名称,以每天为单位,定义日志的前缀为昨天的日期,因为定时任务拟在凌晨零点后执行。
yesterday=$(date -d "yesterday" +%Y%m%d)
#echo ${yesterday}
#rm -rf ${dest_log_path}/*
#指定移动
mv ${source_log_path}/access.log ${dest_log_path}/nginx_access_${yesterday}.log
mv ${source_log_path}/error.log ${dest_log_path}/nginx_error_${yesterday}.log
#移动后,重新向nginx的主进程发送信息,令nginx的主进程将日志重新打开。否则日志将会继续写到mv后的路径中
kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
cd ${dest_log_path}
#进入日志的路径,查询7天前的日志,然后将其删掉。
find . -mtime +7 -name "*20[1-9][3-9]*" |xargs rm -rf
exit 0

 

crontab中设置定时作业
进行编辑
crontab -e
配置内容如下
0 0 * * * root /usr/local/nginx/logs/nginxLogRotate.sh

重启一下定时任务

/sbin/service crond restart
这样在每天的夜晚12点就会自动创建备份文件了。.

posted on 2018-01-24 16:24  徐应钟  阅读(144)  评论(0编辑  收藏  举报

导航