在 CentOS 系統中,nohup 命令用于在后臺運行程序,即使關閉終端或斷開連接,程序也會繼續運行
默認情況下,nohup.out 文件會存儲在當前工作目錄下。如果你想將日志文件存儲在其他位置,可以在運行 nohup 命令時指定輸出文件的路徑。例如:
nohup your_command > /path/to/your/logfile.log 2>&1 &
這里,your_command 是你要運行的命令,/path/to/your/logfile.log 是你希望存儲日志文件的路徑。2>&1 表示將標準錯誤輸出(2)重定向到標準輸出(1),& 表示將命令放入后臺運行。
如果你想限制日志文件的大小,可以使用 logrotate 工具。首先,確保已經安裝了 logrotate:
sudo yum install logrotate
然后,創建一個名為 /etc/logrotate.d/your_command 的配置文件,其中包含以下內容:
/path/to/your/logfile.log {
size 100M
rotate 5
compress
missingok
notifempty
create 640 root root
}
這里,size 100M 表示當日志文件達到 100MB 時,將觸發日志輪轉;rotate 5 表示保留 5 個輪轉日志文件;compress 表示壓縮舊的日志文件;missingok 表示如果日志文件不存在,不會報錯;notifempty 表示如果日志文件為空,不進行輪轉;create 640 root root 表示創建新的日志文件,權限為 640,屬主為 root,屬組為 root。
最后,確保 logrotate 定期運行,可以通過創建一個 cron 任務來實現:
sudo crontab -e
在打開的編輯器中,添加以下行:
0 * * * * /usr/sbin/logrotate /etc/logrotate.conf
這將在每小時的第 0 分鐘運行 logrotate?,F在,你的 nohup 日志文件將會根據配置自動輪轉和壓縮。