在 Debian 系统中,日志备份主要涉及 系统日志、应用日志、以及 journald 日志。下面按常见场景给你一套实用、可操作的备份方案。
/var/log/syslog
/var/log/messages
/var/log/auth.log
/var/log/kern.log
/var/log/dpkg.log
/var/log/apt/
/var/log/journal/
/var/log/nginx/
/var/log/mysql/
/var/log/docker.log
tar -czf /backup/logs-$(date +%F).tar.gz /var/log
✅ 优点:简单
❌ 缺点:可能包含正在写入的日志,不完整
Debian 默认已安装 logrotate,这是最标准的日志管理方式。
ls /etc/logrotate.d/
sudo vim /etc/logrotate.d/mylogs
示例内容:
/var/log/myapp/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 root adm
postrotate
systemctl reload myapp > /dev/null 2>&1 || true
endscript
}
sudo logrotate -vf /etc/logrotate.conf
✅ 自动轮转 + 压缩 + 删除旧日志
journalctl --disk-usage
sudo vim /etc/systemd/journald.conf
示例:
[Journal]
Storage=persistent
Compress=yes
SystemMaxUse=500M
重启:
sudo systemctl restart systemd-journald
tar -czf /backup/journal-$(date +%F).tar.gz /var/log/journal
⚠️ 不建议直接复制 journal 文件,最好先停止 journald:
sudo systemctl stop systemd-journald
# 备份
sudo systemctl start systemd-journald
sudo apt install rsyslog
编辑:
sudo vim /etc/rsyslog.conf
添加:
*.* @@logserver.example.com:514
重启:
sudo systemctl restart rsyslog
sudo crontab -e
0 2 * * * tar -czf /backup/logs-$(date +\%F).tar.gz /var/log
✅ 生产环境推荐组合
✅ 保留周期建议
journalctl --vacuum-size=200M
❌ 不建议直接删,用 logrotate 或 truncate
如果你愿意,可以告诉我:
我可以帮你写一套完整可直接用的备份方案。