在 CentOS 系統中,使用 nohup
命令運行程序時,默認情況下不會自動進行日志輪轉。為了實現日志輪轉,你可以使用 logrotate
工具來管理日志文件。以下是如何設置 nohup
日志輪轉的步驟:
創建日志文件:
首先,確保你的程序已經使用 nohup
命令運行,并且日志文件已經生成。例如:
nohup your_command > output.log 2>&1 &
創建 logrotate 配置文件:
在 /etc/logrotate.d/
目錄下創建一個新的配置文件,例如 your_command
:
sudo vi /etc/logrotate.d/your_command
編輯 logrotate 配置文件: 在配置文件中添加以下內容:
/path/to/output.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 root root
}
解釋:
daily
:每天輪轉一次日志文件。rotate 7
:保留最近7天的日志文件。compress
:壓縮舊的日志文件。delaycompress
:延遲壓縮,直到下一次輪轉。missingok
:如果日志文件不存在,不會報錯。notifempty
:如果日志文件為空,不進行輪轉。create 640 root root
:創建新的日志文件,權限為640,屬主和屬組為root。測試 logrotate 配置:
你可以手動測試 logrotate
配置是否正確:
sudo logrotate -f /etc/logrotate.d/your_command
這將強制執行一次日志輪轉。
確保 logrotate 定期運行:
logrotate
通常由 cron 定期運行。你可以檢查 /etc/cron.daily/logrotate
文件,確保它存在并且沒有被禁用。
通過以上步驟,你就可以為使用 nohup
命令運行的程序設置日志輪轉了。這樣可以幫助你更好地管理日志文件,避免日志文件過大導致磁盤空間不足的問題。