在 Ubuntu 系统中,syslog 通常由 rsyslog 或 systemd-journald 负责记录。备份方式取决于你使用的是 syslog 文件 还是 systemd journal。下面分别说明常见做法。
/var/log/syslog
/var/log/messages # 某些版本
/var/log/kern.log
/var/log/auth.log
sudo cp /var/log/syslog /backup/syslog_$(date +%F).bak
或使用 rsync:
sudo rsync -av /var/log/syslog /backup/
sudo tar czvf syslog_backup_$(date +%F).tar.gz /var/log/syslog /var/log/auth.log
Ubuntu 16.04+ 默认使用 systemd,日志由 journald 管理。
ls /var/log/journal
sudo tar czvf journal_backup_$(date +%F).tar.gz /var/log/journal
⚠️ 注意:
sudo journalctl > journal_$(date +%F).log
或按时间导出:
sudo journalctl --since "2025-01-01" --until "2025-01-31" > journal_jan.log
Ubuntu 默认已启用 logrotate。
cat /etc/logrotate.d/rsyslog
示例:
/var/log/syslog
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
/usr/lib/rsyslog/rsyslog-rotate 2>/dev/null || true
endscript
}
sudo logrotate -f /etc/logrotate.conf
自动备份文件通常位于:
/var/log/syslog.1.gz
/var/log/syslog.2.gz
rsync -avz /var/log/ user@backup-server:/backup/ubuntu-logs/
# /etc/rsyslog.d/remote.conf
*.* @@log-server:514
✅ 定期备份(cron / systemd timer)
✅ 同时备份:
/var/log/syslog/var/log/journal/var/log/auth.log✅ 日志保留策略:
journalctl --vacuum-size=500M
journalctl --vacuum-time=30d
| 场景 | 推荐方式 |
|---|---|
| 临时备份 | cp /var/log/syslog |
| 完整系统日志 | 备份 /var/log/journal |
| 自动管理 | logrotate |
| 远程安全 | rsync / rsyslog |
如果你能告诉我:
我可以给你一套定制化的备份方案。