本文介紹如何利用logrotate工具配置Nginx日志輪轉,實現日志文件的定期自動管理。
前提條件: 確保您的系統已安裝logrotate。大多數Linux發行版默認安裝,否則請使用系統包管理器安裝(例如,apt-get或yum)。
步驟一:創建配置文件
在/etc/logrotate.d/目錄下創建一個名為nginx的配置文件:
sudo touch /etc/logrotate.d/nginx
步驟二:編輯配置文件
使用文本編輯器打開/etc/logrotate.d/nginx文件,并添加以下配置:
/var/log/nginx/*.log { daily # 每天輪轉 missingok # 日志文件不存在時忽略 compress # 壓縮輪轉后的日志文件 delaycompress # 延遲壓縮,直到下次輪轉 notifempty # 日志文件為空時忽略 create 0640 www-data adm # 創建新日志文件,權限為0640,屬主www-data,屬組adm sharedscripts # 多個日志文件時,只執行一次postrotate腳本 postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 $(cat /var/run/nginx.pid) fi endscript }
配置參數說明:
- daily:每天輪轉日志。可修改為weekly(每周)、monthly(每月)等。
- missingok:如果日志文件不存在,則忽略錯誤。
- compress:輪轉后的日志文件將被壓縮(.gz)。
- delaycompress:延遲壓縮,直到下次輪轉。
- notifempty:如果日志文件為空,則不進行輪轉。
- create 0640 www-data adm:創建新的日志文件,權限為0640,所有者為www-data,組為adm。
- sharedscripts:確保即使有多個匹配的日志文件,postrotate腳本也只執行一次。
- postrotate … endscript:日志輪轉后執行的腳本。此腳本向Nginx主進程發送USR1信號,觸發Nginx重新打開日志文件。
步驟三:測試配置
運行以下命令測試配置是否正確:
sudo logrotate -d /etc/logrotate.d/nginx
-d選項用于測試模式,不會實際執行輪轉操作。 如果一切正常,您將看到類似的輸出,顯示logrotate如何處理Nginx日志文件。 如有錯誤,請仔細檢查配置文件。
步驟四:運行logrotate
要立即執行日志輪轉,運行以下命令:
sudo logrotate /etc/logrotate.d/nginx
之后,logrotate將根據您設置的周期自動輪轉Nginx日志。
通過以上步驟,您可以成功配置Nginx日志的輪轉周期,方便日志管理和存儲空間優化。 記得根據實際需求調整daily等參數。