928
技術社區[雲棲]
用shell腳本切割nginx日誌並壓縮
一個nginx切割日誌的腳本,自動刪除7天前日誌
#!/bin/bash LOGS_PATH=/home/wwwlogs YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) #按天切割日誌 mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log #向 Nginx 主進程發送 USR1 信號,重新打開日誌文件,否則會繼續往mv後的文件寫內容,導致切割失敗. kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'` #壓縮 gzip -9 ${LOGS_PATH}/access_${YESTERDAY}.log #刪除7天前的日誌 cd ${LOGS_PATH} find . -mtime +7 -name "*20[1-9][3-9]*" | xargs rm -f exit 0
可以通過grep、awk找到nginx master也可以直接kill -USR1 pid
kill -USR1 `ps aux | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
或
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
最後更新:2017-07-02 11:27:10