在 Linux 下,syslog 备份通常可以从「日志文件备份」「日志轮转配置」「远程备份」「集中式日志管理」几个层面来做。下面按常见场景给你一个实用指南。
不同发行版略有差异:
/var/log/syslog/var/log/messages/var/log/auth.log/var/log/kern.log/var/log/cron.logLinux 自带 logrotate,是备份 syslog 最标准的方式。
/etc/logrotate.d/
例如 /etc/logrotate.d/rsyslog
/var/log/syslog {
daily
missingok
rotate 30
compress
delaycompress
notifempty
create 0640 syslog adm
postrotate
/usr/bin/systemctl kill -s HUP rsyslog.service
endscript
}
含义:
daily:每天轮转rotate 30:保留 30 份compress:压缩备份postrotate:通知 rsyslog 重新打开日志logrotate -d /etc/logrotate.conf # 模拟
logrotate -f /etc/logrotate.conf # 强制执行
适合临时或自定义备份:
#!/bin/bash
BACKUP_DIR=/backup/syslog
DATE=$(date +%F)
mkdir -p $BACKUP_DIR
cp /var/log/syslog $BACKUP_DIR/syslog-$DATE
gzip $BACKUP_DIR/syslog-$DATE
加入 crontab:
0 2 * * * /root/backup_syslog.sh
rsync -az /var/log/syslog backup@192.168.1.10:/backup/
编辑 /etc/rsyslog.conf:
*.* @@logserver:514
重启:
systemctl restart rsyslog
如果是 journalctl:
journalctl > /backup/journal-$(date +%F).log
或导出:
journalctl --since "1 day ago" -o json > journal.json
chmod 600如果你能告诉我:
我可以给你一份可直接用的配置或脚本。