在Linux系統中,nohup
命令用于在后臺運行程序,即使關閉終端或斷開連接,程序也會繼續運行。默認情況下,nohup
會將輸出重定向到nohup.out
文件中。為了實現日志輪轉,可以使用logrotate
工具來管理日志文件的大小和數量。
以下是如何配置logrotate
來處理nohup.out
文件的步驟:
創建一個logrotate
配置文件:
你可以為特定的應用程序或日志文件創建一個自定義的logrotate
配置文件。假設你的應用程序名為myapp
,你可以創建一個名為/etc/logrotate.d/myapp
的文件。
sudo nano /etc/logrotate.d/myapp
編輯配置文件:
在/etc/logrotate.d/myapp
文件中添加以下內容:
/path/to/nohup.out {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
}
解釋:
daily
: 每天輪轉一次日志文件。rotate 7
: 保留7個輪轉的日志文件。compress
: 壓縮舊的日志文件以節省空間。missingok
: 如果日志文件不存在,不會報錯。notifempty
: 如果日志文件為空,不進行輪轉。create 640 root adm
: 創建新的日志文件,權限為640,屬主為root,屬組為adm。測試配置:
你可以手動測試logrotate
配置是否正確:
sudo logrotate -f /etc/logrotate.d/myapp
這會強制執行一次日志輪轉,并根據配置文件處理日志文件。
自動輪轉:
logrotate
通常由cron定時任務自動執行。默認情況下,logrotate
每天運行一次。你可以檢查/etc/cron.daily/logrotate
文件來確認這一點。
通過以上步驟,你可以配置logrotate
來管理nohup.out
文件的日志輪轉,確保日志文件不會無限增長,同時保留一定數量的舊日志文件。