每天切割nginx日志,因为有多个日志文件,所以使用ls
依次操作
#!/bin/bash
# 日志路径
LOG_PATH=/opt/project/nginx/logs/
#日期格式
YESTERDAY=$(date -d "yesterday" +%m-%d)
# pid文件,用于读取pid
PID=/opt/project/nginx/logs/nginx.pid
# 读取所有log文件
for log in `find /opt/project/nginx/logs/ -name \*.haid.com.cn.log -size +10k`
do
#echo $log
#切割日志
mv ${log} ${log}.${YESTERDAY}.log
done
#向Nginx主进程发送USR1信号,重新打开日志文件
kill -USR1 `cat /opt/project/nginx/logs/nginx.pid`
# 压缩历史日志
for i in `find ${LOG_PATH} -name \*.log -mtime +2 `
do
zip -m ${i}.zip ${i}
done
# 日志文件保留7天
find ${LOG_PATH} -name \*.log\* -mtime +7 -exec rm -f {} \;
添加定时任务,每天凌晨一点执行
crontab -e
00 01 * * * /opt/project/nginx/nginx_log.sh >/dev/null 2>&1