在 Linux 中备份 syslog(系统日志) 常见做法有几种,取决于你使用的是 rsyslog、syslog-ng 还是 systemd-journald。下面按常见场景说明。
常见路径:
/var/log/messages
/var/log/syslog
/var/log/secure
/var/log/cron
/var/log/maillog
/var/log/journal/
或:
journalctl
cp /var/log/syslog /backup/syslog_$(date +%F).bak
tar czf /backup/syslog_$(date +%F).tar.gz /var/log/syslog
✅ 适合临时备份或迁移
Linux 自带 logrotate 可自动轮转、压缩、备份日志。
ls /etc/logrotate.d/
编辑或新建:
vim /etc/logrotate.d/syslog-backup
内容示例:
/var/log/syslog {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 0640 root adm
postrotate
/usr/lib/rsyslog/rsyslog-rotate 2>/dev/null || true
endscript
}
说明:
daily:每天备份rotate 30:保留 30 份compress:gzip 压缩create:重新创建日志文件logrotate -vf /etc/logrotate.conf
✅ 生产环境最常用
journalctl --no-pager > /backup/journal_$(date +%F).log
journalctl --output=export > /backup/journal_$(date +%F).journal
journalctl --vacuum-size=500M
在客户端:
*.* @@logserver.example.com:514
在日志服务器:
module(load="imtcp")
input(type="imtcp" port="514")
rsync -avz /var/log/ backup-server:/backup/logs/
✅ 推荐组合:
du -sh /var/log/*
journalctl --vacuum-time=7d
❌ 不需要
logrotate 会自动 reload rsyslog
如果你能告诉我:
我可以给你一套可直接用的完整配置。