nginx日志切割脚本
2021-04-14 本文已影响0人
运维之美
nginx日志切割脚本,在Linux上部署成crond定时任务,0点执行会进行日志切割
#!/bin/bash
## 零点执行该脚本
## Nginx 日志文件所在的目录
LOGS_PATH=/nginx/tengine/logs
## 获取昨天的 yyyy-MM-dd
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
## 移动文件
cd $LOGS_PATH
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
tar -zcvf ${LOGS_PATH}/access_${YESTERDAY}.tar.gz access_${YESTERDAY}.log
rm -rf ${LOGS_PATH}/access_${YESTERDAY}.log
tar -zcvf ${LOGS_PATH}/error_${YESTERDAY}.tar.gz error_${YESTERDAY}.log
rm -rf ${LOGS_PATH}/error_${YESTERDAY}.log
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 $(cat ${LOGS_PATH}/nginx.pid)
##删除7天前的日志文件
find ${LOGS_PATH} -type f -name "*.tar.gz" -mtime +7 -exec rm -rf {} \;