閱讀928 返回首頁    go 技術社區[雲棲]


用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

  上一篇:go  完全卸載刪除gitlab
  下一篇:go  CentOS6.9安裝Gitlab9.1.3及漢化