在 CentOS 系統中,nohup 命令用于在后臺運行程序,即使關閉終端也不會中斷
使用 split 命令分割輸出文件:
在運行程序時,可以使用 split 命令將輸出文件分割成多個較小的文件。例如,以下命令將輸出文件分割成每個大小為 100MB 的文件:
nohup your_command > output.log.20210901 &
split -b 100M output.log.20210901 output.log.part.
這將在后臺運行 your_command,并將輸出重定向到 output.log.20210901。然后,split 命令會將 output.log.20210901 分割成多個大小為 100MB 的文件,文件名以 output.log.part. 開頭。
使用 logrotate 工具管理日志文件:
logrotate 是一個用于管理日志文件的工具,可以自動壓縮、刪除和分割日志文件。要使用 logrotate 管理 nohup 命令的輸出文件,需要創建一個配置文件,例如 /etc/logrotate.d/your_command,并添加以下內容:
/path/to/output.log {
size 100M
rotate 5
compress
missingok
notifempty
create 640 user group
}
這將限制 output.log 文件的大小為 100MB,并保留最近的 5 個旋轉文件。旋轉的文件將被壓縮,如果文件不存在則不會報錯,如果文件為空則不進行旋轉。同時,創建新的日志文件時,將設置文件權限為 640,屬主為用戶(user),屬組為組(group)。
然后,在運行 nohup 命令時,使用 logrotate 的 -f 選項強制執行配置:
nohup your_command > /path/to/output.log 2>&1 &
logrotate -f /etc/logrotate.d/your_command
這將在后臺運行 your_command,并將輸出重定向到 /path/to/output.log。logrotate 將根據配置文件管理日志文件。
請注意,這些方法僅限制輸出文件的大小,而不是實時監控輸出文件大小。如果需要實時監控輸出文件大小,可以考慮使用第三方工具,如 logwatch 或 logcheck。