第一步 重命名文件,移動日誌文件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