在 Linux 系統中,日志輪轉通常由 logrotate
工具管理
/etc/logrotate.d/myapp
。使用文本編輯器(如 vim、nano 等)打開該文件:sudo nano /etc/logrotate.d/myapp
/path/to/your/log/files/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 root adm
sharedscripts
postrotate
/bin/systemctl reload myapp.service > /dev/null 2>&1 || true
endscript
}
這個配置的解釋如下:
/path/to/your/log/files/*.log
:指定要輪轉的日志文件路徑。將其替換為你的應用程序日志文件所在的目錄。daily
:每天進行一次日志輪轉。missingok
:如果日志文件不存在,不會產生錯誤。rotate 7
:保留最近 7 個日志文件。compress
:壓縮舊的日志文件。delaycompress
:延遲壓縮,直到下一次輪轉。notifempty
:如果日志文件為空,則不進行輪轉。create 0640 root adm
:創建新的日志文件,設置權限為 0640,屬主為 root,屬組為 adm。sharedscripts
:如果有多個日志文件,只執行一次 postrotate
腳本。postrotate
和 endscript
之間的部分:在輪轉后執行的腳本。在這個例子中,我們重新加載名為 myapp.service
的 systemd 服務。將其替換為你的應用程序服務名稱。sudo logrotate --debug /etc/logrotate.d/myapp
如果沒有錯誤或警告,那么你的配置應該是正確的。
logrotate
通常由 cron 任務自動執行。確保你的系統已經安裝了 cron
,并且 /etc/cron.daily/logrotate
文件存在。這將確保每天自動執行日志輪轉。現在,你已經成功配置了 Linux 日志輪轉。根據你的配置,日志文件將按照指定的規則進行輪轉。