nohup 命令能夠讓程序在后臺持續運行,即使終端關閉或斷開連接,程序仍會繼續執行。通常,nohup 會將其輸出重定向到一個名為 nohup.out 的文件中。隨著時間的積累,這個文件可能會變得相當龐大,因此需要對其進行日志切割。
下面介紹如何使用 logrotate 工具來進行日志切割:
-
首先,確認 logrotate 工具已安裝。大多數 Linux 發行版中,logrotate 是預裝的。如果未安裝,可以通過以下命令進行安裝:
sudo apt-get install logrotate
對于基于 RHEL 的系統(如 centos):
sudo yum install logrotate
-
接下來,創建或編輯 /etc/logrotate.conf 配置文件,添加以下內容:
/path/to/your/nohup.out { daily rotate 7 compress missingok notifempty create 0640 user group }
此配置設置為每日切割一次日志,保留最近 7 天的日志文件,壓縮舊日志文件,如果日志文件不存在則不報錯,如果日志文件為空則不進行切割,并在創建新日志文件時設置其權限和屬主。
請根據實際情況,將 /path/to/your/nohup.out 替換為 nohup.out 文件的實際路徑,并將 user 和 group 替換為您希望的屬主和屬組。
-
如果 /etc/logrotate.d 目錄不存在,請創建該目錄,并將 logrotate.conf 文件移動到該目錄中:
sudo mkdir /etc/logrotate.d sudo mv /etc/logrotate.conf /etc/logrotate.d/nohup
-
現在,logrotate 將根據配置文件自動切割 nohup.out 日志文件。您可以通過運行以下命令手動觸發日志切割:
sudo logrotate -f /etc/logrotate.d/nohup
這里的 -f 選項表示強制進行日志切割。
通過上述步驟,您可以實現 nohup 命令的日志切割。這些步驟適用于大多數 Linux 發行版,但某些發行版可能需要稍作調整。