在 Linux 系統中,nohup
命令用于在后臺運行程序,即使關閉終端或斷開連接,程序也會繼續運行。默認情況下,nohup
會將輸出重定向到名為 nohup.out
的文件中。為了實現日志輪轉,我們可以結合使用 logrotate
工具。
以下是如何使用 logrotate
實現 nohup
命令的日志輪轉:
首先,確保你的系統已經安裝了 logrotate
。在大多數 Linux 發行版中,logrotate
已經預裝。如果沒有,你可以使用包管理器(如 apt
、yum
或 pacman
)來安裝它。
創建一個名為 nohup-out.conf
的新配置文件,放在 /etc/logrotate.d/
目錄下。這個文件將包含針對 nohup.out
文件的日志輪轉設置。使用文本編輯器創建并編輯該文件,例如:
sudo nano /etc/logrotate.d/nohup-out
在 nohup-out.conf
文件中,添加以下內容:
/path/to/your/nohup.out {
daily
rotate 7
compress
missingok
notifempty
create 0640 user group
}
這里的配置表示:
daily
:每天輪轉一次日志。rotate 7
:保留最近 7 天的日志文件。compress
:壓縮舊日志文件以節省空間。missingok
:如果日志文件不存在,不會產生錯誤。notifempty
:如果日志文件為空,不進行輪轉。create 0640 user group
:創建新的日志文件,權限為 0640,屬主為用戶(user),屬組為組(group)。請根據實際情況替換 user
和 group
。保存并關閉 nohup-out.conf
文件。
現在,logrotate
將根據 nohup-out.conf
中的配置自動輪轉 nohup.out
文件。你可以通過手動運行 logrotate
命令來測試配置是否正確:
sudo logrotate /etc/logrotate.d/nohup-out
檢查 /path/to/your/
目錄下是否生成了新的日志文件,以及舊的日志文件是否已被壓縮。
現在,你已經成功配置了 nohup
命令的日志輪轉。logrotate
將根據指定的策略自動處理日志文件,無需手動干預。