在 Debian 上,“nohup 日志”通常指用 nohup command > logfile 2>&1 & 方式产生的输出文件。下面从手动备份、自动备份、轮转管理三个角度说明。
假设你的日志文件是:
nohup.out
# 或
/var/log/myapp.log
直接复制即可:
cp nohup.out nohup.out.bak
或带日期:
cp nohup.out nohup.out.$(date +%F).bak
vim /root/backup_nohup.sh
内容示例:
#!/bin/bash
SRC=/path/to/nohup.out
DST=/backup/nohup.out.$(date +%F_%H-%M).log
cp "$SRC" "$DST"
赋予权限:
chmod +x /root/backup_nohup.sh
crontab -e
每天凌晨 2 点备份:
0 2 * * * /root/backup_nohup.sh
如果是自己可控的日志文件,强烈建议用 logrotate。
sudo vim /etc/logrotate.d/myapp
内容:
/path/to/nohup.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
说明:
copytruncate:不中断进程,复制后清空原文件(适合 nohup 日志)compress:备份压缩rotate 7:保留 7 份手动测试:
logrotate -d /etc/logrotate.d/myapp # 模拟
logrotate -f /etc/logrotate.d/myapp # 强制执行
⚠️ 不要直接 rm nohup.out,否则:
正确方式:
copytruncatersync -avz nohup.out user@backup-server:/backup/
如果你愿意,可以告诉我:
我可以帮你定制一套备份方案。