溫馨提示×

如何通過nohup命令在Linux中實現日志輪轉

小樊
44
2025-04-23 04:19:23
欄目: 智能運維

在Linux中,nohup命令用于在后臺運行程序,即使關閉終端或斷開連接也不會終止

  1. 首先,創建一個日志文件,例如myapp.log。
touch myapp.log
  1. 使用nohup命令運行你的程序,并將輸出重定向到日志文件。例如,如果你的程序是./myapp,則可以這樣運行:
nohup ./myapp > myapp.log 2>&1 &

這里,>表示將標準輸出重定向到myapp.log,2>&1表示將標準錯誤重定向到標準輸出(即myapp.log),最后的&表示在后臺運行。

  1. 為了實現日志輪轉,可以使用logrotate工具。首先,確保已經安裝了logrotate。在大多數Linux發行版中,它應該已經預裝了。如果沒有,可以使用以下命令安裝:

對于基于Debian的系統(如Ubuntu):

sudo apt-get install logrotate

對于基于RPM的系統(如CentOS、Fedora):

sudo yum install logrotate
  1. 創建一個logrotate配置文件,例如/etc/logrotate.d/myapp,并添加以下內容:
/path/to/myapp.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 640 root adm
}

這里的配置表示:

  • daily:每天輪轉日志。
  • rotate 7:保留7個輪轉日志。
  • compress:壓縮舊的日志文件。
  • missingok:如果日志文件不存在,不會產生錯誤。
  • notifempty:如果日志文件為空,不進行輪轉。
  • create 640 root adm:創建新的日志文件,權限為640,屬主為root,屬組為adm。
  1. 確保logrotate定時任務已啟用。編輯/etc/cron.daily/logrotate文件,確保其中包含以下內容:
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
  1. 現在,logrotate將自動處理myapp.log文件的輪轉。你可以手動運行logrotate命令來測試配置是否正確:
sudo logrotate /etc/logrotate.d/myapp

這樣,通過結合使用nohuplogrotate,你可以在Linux中實現日志輪轉。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女