温馨提示×

debian nohup日志怎样备份

小樊
47
2026-10-19 04:31:28
栏目: 智能运维

在 Debian 下使用 nohup 运行的程序,日志通常写在 nohup.out 或你指定的日志文件里。备份这类日志常见做法如下:


一、基本备份方式

1. 直接复制(最简单)

cp nohup.out nohup.out.bak

或

cp /path/to/app.log /path/to/app.log.bak

⚠️ 注意:程序还在写日志时直接 cp 是安全的(不会破坏写入),只是备份的是“某一时刻的快照”。


2. 使用 tar 打包备份

tar czf nohup_$(date +%Y%m%d).tar.gz nohup.out

适合定期归档。


二、日志轮转(推荐做法)

1. 使用 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  # 强制执行

2. 手动实现日志切割(无 logrotate)

cp nohup.out nohup.out.$(date +%Y%m%d)
> nohup.out

⚠️ > nohup.out 会清空文件,但 nohup 进程仍可继续写入。


三、定时自动备份(crontab)

crontab -e

每天凌晨备份:

0 0 * * * cp /home/user/nohup.out /backup/nohup_$(date +\%Y\%m\%d).out

四、最佳实践建议

✅ 推荐:

  • nohup 日志重定向到固定路径
  • 使用 logrotate + copytruncate
  • 定期备份到 /backup 或远程服务器

❌ 不推荐:

  • 长期不清理 nohup.out(容易撑爆磁盘)
  • 直接 rm nohup.out(可能导致进程写异常)

如果你愿意,可以告诉我:

  • nohup 是怎么启动的(命令示例)
  • 日志路径
  • 是否允许重启程序

我可以帮你写一份完整可用的备份方案。

0 踩