第一步 重命名文件,移动日志文件html
第二步 向主进程发送从新打开日志文件的信息linux
#!/bin/bash LOGPATH=/var/log/nginx/error.log BACKPATH=/var/www/html/nginxLogs YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) mkdir -p ${BACKPATH} mv ${LOGPATH} ${BACKPATH}/${YESTERDAY}.wuyanzu.error.log PID=/var/run/nginx.pid #向Nginx主进程发送USR1信号,从新打开日志文件 kill -USR1 `cat ${PID}
在没有执行kill -USR1 `cat ${pid_path}`以前,即使已经对文件执行了mv命令而改变了文件名称,nginx仍是会向新命名的文件” xxx.log_ 20130909”照常写入日志数据的。缘由在于:linux系统中,内核是根据文件描述符来找文件的。 nginx
crontab -ebash
定时脚本:spa
01 00 * * * /bin/bash /usr/local/nginx/log.sh.net
启动服务日志
systemctl start crond.servicecode
详细参考:https://blog.csdn.net/yz18931904/article/details/80639822htm