使用cp
命令直接復制nohup.out
文件到備份目錄,是最基礎的備份方式。例如將日志備份到/mnt/backup
目錄:
cp nohup.out /mnt/backup/
若需壓縮備份以節省空間,可使用tar
命令:
tar -czvf nohup_backup_$(date +%Y%m%d).tar.gz nohup.out
此命令會生成帶日期戳的壓縮包,便于后續檢索。
通過crontab
設置定時任務,實現定期自動備份。編輯當前用戶的crontab文件:
crontab -e
添加如下內容(每天凌晨1點備份nohup.out
到/mnt/backup
目錄):
0 1 * * * cp nohup.out /mnt/backup/nohup_$(date +\%Y\%m\%d).out
注意:日期格式需用\%Y\%m\%d
轉義,避免cron解析錯誤。
logrotate
是Debian系統自帶的日志管理工具,可自動化完成日志輪轉、壓縮、刪除舊日志等操作,比手動備份更高效。
若未安裝logrotate
,可通過以下命令安裝:
sudo apt-get install logrotate
創建專門配置文件(如/etc/logrotate.d/nohup
),內容如下:
/path/to/nohup.out {
daily # 每天輪轉一次(可根據需求改為weekly/monthly)
rotate 7 # 保留最近7個備份文件
compress # 使用gzip壓縮舊日志(節省空間)
missingok # 若日志文件不存在,不報錯
notifempty # 若日志為空,不進行輪轉
create 640 root adm # 輪轉后創建新日志,權限640,屬主root,屬組adm
}
說明:將/path/to/nohup.out
替換為實際的nohup.out
文件路徑。
測試配置是否正確:
sudo logrotate -f /etc/logrotate.d/nohup
強制立即執行一次輪轉,觀察是否生成壓縮包和新的nohup.out
文件。
logrotate
默認由系統cron每日自動運行(路徑:/etc/cron.daily/logrotate
),無需額外配置。
確保nohup.out
及備份文件的權限合理,避免敏感信息泄露:
chmod 600 /path/to/nohup.out
(僅屬主可讀寫)
chown root:adm /path/to/nohup.out
(屬主root,屬組adm)
備份目錄權限建議設置為700
:
chmod 700 /mnt/backup
。
若日志中包含密碼、密鑰等敏感信息,需提前通過腳本或工具(如sed
)脫敏。例如:
sed -i 's/password=[^&]*/password=*****/g' nohup.out
替換password
字段為*****
,再執行備份操作。
/tmp
),推薦使用專用備份目錄(如/mnt/backup
),并確保目錄所在分區有足夠空間。rotate
參數(如保留30天備份),避免備份文件占用過多空間。ls -lh /mnt/backup
查看備份文件大小和時間戳。