在 Debian 下使用 nohup 运行的程序,日志通常写在 nohup.out 或你指定的日志文件里。备份这类日志常见做法如下:
cp nohup.out nohup.out.bak
或
cp /path/to/app.log /path/to/app.log.bak
⚠️ 注意:程序还在写日志时直接 cp 是安全的(不会破坏写入),只是备份的是“某一时刻的快照”。
tar czf nohup_$(date +%Y%m%d).tar.gz nohup.out
适合定期归档。
logrotate(最规范)如果你用 nohup 重定向了日志,例如:
nohup python app.py > /var/log/app.log 2>&1 &
配置 /etc/logrotate.d/app:
/var/log/app.log {
daily
rotate 7
missingok
notifempty
compress
copytruncate
}
说明:
copytruncate:复制后清空原日志(不影响 nohup 进程)应用配置:
logrotate -d /etc/logrotate.d/app # 测试
logrotate -f /etc/logrotate.d/app # 强制执行
cp nohup.out nohup.out.$(date +%Y%m%d)
> nohup.out
⚠️ > nohup.out 会清空文件,但 nohup 进程仍可继续写入。
crontab -e
每天凌晨备份:
0 0 * * * cp /home/user/nohup.out /backup/nohup_$(date +\%Y\%m\%d).out
✅ 推荐:
logrotate + copytruncate/backup 或远程服务器❌ 不推荐:
nohup.out(容易撑爆磁盘)rm nohup.out(可能导致进程写异常)如果你愿意,可以告诉我:
我可以帮你写一份完整可用的备份方案。