日志分割脚本:
#!/bin/bash
year=`date +%Y`
month=`date +%m`
day=`date +%d`
logs_backup_path="/data/log/nginx/$year$month" #日志存储路径
logs_path="/data/log/nginx/" #要切割的日志路径
logs_access="access" #要切割的日志
logs_error="error"
pid_path="/usr/local/nginx/logs/nginx.pid" #nginx的pid
[ -d $logs_backup_path ]||mkdir -p $logs_backup_path
rq=`date +%Y%m%d`
#mv ${logs_path}${logs_access}.log ${logs_backup_path}/${logs_access}_${rq}.log
mv ${logs_path}${logs_error}.log ${logs_backup_path}/${logs_error}_${rq}.log
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
crontab 配置,每天晚上凌晨备份一次
55 23 * * * sh /data/log/nginx_log_cut.sh
亲测好用,,,每天 23:55会吧日志切割备份
【1】原理是吧日志文件移动到对应日期目录下
【2】重启nginx(nginx记录时,日志文件不存在,可能会造成nginx运行异常)