1、編寫shell指令碼qiege.sh:
#!/bin/bash
logs_path=/data/wwwlogs/www.codelovers.cn
yesterday=$(date -d "yesterday" +%y-%m-%d)
#按天切割日誌
mv $/www.codelovers.cn.log $/www.codelovers.cn_$.log
#向 nginx 主程序傳送 usr1 訊號,重新開啟日誌檔案,否則會繼續往mv後的檔案寫內容,導致切割失敗.
kill -usr1 `ps axu | grep "nginx: master process" | grep -v grep | awk ''`
gzip -9 $/www.codelovers.cn_$.log
#刪除7天前的日誌,日誌做了備份,本地250
find /data/wwwlogs/www.codelovers.cn -mtime +30 -name "*20[1-9][3-9]*" | xargs rm -f
exit 0
2、設定定時任務執行指令碼:
[root@localhost ~]#crontab -e
新增如下定時任務
0 0 * * * sh /data/logs/qiege.sh
日誌就會每天在零點的時候進行切割,日誌最多儲存30天 linux下 Nginx日誌分割
linux下 nginx日誌分割 廢話不多說,直接上 bin bash 間隔1天執行該指令碼 nginx 日誌檔案所在的目錄 logs path usr local nginx logs nginx 日誌檔案生成後的目錄 newlogs path home wwwlogs 獲取昨天的 yyyy mm...
Linux下nginx日誌自動切割
他山之石,可以攻玉 需求與思路 查詢nginx日誌時發現main access.log已達到幾十個g,即便是error.log也接近1g,才意識到一直忽視了日誌檔案的管理,這非常不利於日誌的查詢和問題的追蹤,而人為切割有太多不確定性,所以實現nginx日誌的自動切割是很有必要的。我是通過shell指...
nginx 日誌檔案
我們觀察nginx的server段,可以看到如下類似資訊 access log logs host.access.log main 這說明 該server,它的訪問日誌的檔案是 logs host.access.log 使用的格式 main 格式.除了main格式,你可以自定義其他格式.main格式...