Ubuntu日志备份方法有哪些
导读:Ubuntu日志备份方法概览 一 本地轮转归档 logrotate 适用对象:/var/log/ 下的文本日志(如 syslog、auth.log、kern.log 等),由 rsyslog 写入。 核心做法:使用 logrotate 按...
Ubuntu日志备份方法概览
一 本地轮转归档 logrotate
- 适用对象:/var/log/ 下的文本日志(如 syslog、auth.log、kern.log 等),由 rsyslog 写入。
- 核心做法:使用 logrotate 按日/周轮转、压缩、保留历史并触发服务重新打开日志文件,避免日志持续增长。
- 示例配置(/etc/logrotate.d/syslog):
/var/log/syslog /var/log/auth.log /var/log/kern.log { daily rotate 7 compress delaycompress missingok notifempty create 640 root adm sharedscripts postrotate systemctl reload rsyslog > /dev/null 2> & 1 || true endscript } - 常用命令:
- 测试配置:
sudo logrotate -d /etc/logrotate.d/syslog - 强制执行:
sudo logrotate -f /etc/logrotate.d/syslog
- 测试配置:
- 说明:大多数 Ubuntu 已预装 logrotate;如未安装可用
sudo apt-get install logrotate安装。
二 集中式日志备份 rsyslog 服务器
- 适用场景:多台主机日志统一备份到一台服务器,便于审计与留存。
- 服务端配置(/etc/rsyslog.conf 或 /etc/rsyslog.d/):
module(load="imudp") input(type="imudp" port="514") module(load="imtcp") input(type="imtcp" port="514") $template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs & ~- 重启服务:
sudo systemctl restart rsyslog - 防火墙放行:
sudo ufw allow 514/tcp与sudo ufw allow 514/udp
- 重启服务:
- 客户端配置(将日志发往服务器):
- UDP:
*.* @192.0.2.10:514 - TCP:
*.* @@192.0.2.10:514 - 网络不稳可加入队列参数(示例):
$ActionQueueFileName fwdQueue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1
- UDP:
- 验证:
ss -tunelp | grep 514查看监听状态。
三 定时打包与同步备份
- 适用对象:需要把历史日志归档为压缩包并拷贝到本地或远程存储(NAS、备份服务器等)。
- 使用 tar 归档示例:
LOG_DIR="/var/log" BACKUP_DIR="/backup/logs" TS=$(date +"%Y%m%d%H%M%S") tar -czvf "$BACKUP_DIR/logs_$TS.tar.gz" -C "$LOG_DIR" . # 保留最近7天 find "$BACKUP_DIR" -name "logs_*.tar.gz" -mtime +7 -delete - 使用 rsync 增量同步示例:
rsync -aAXv --delete /var/log/ user@backup-host:/backup/ubuntu-logs/ - 定时执行:将脚本加入 cron(如每日 23:30)
30 23 * * * /usr/local/bin/backup_logs.sh - 说明:以上命令可按需组合(先 tar 再 rsync 到远端),并配合保留策略控制容量。
四 systemd journal 日志的备份
- 特点:journald 日志默认可能位于 /run/log/journal/(易失),可配置为持久化写入磁盘(/var/log/journal)。
- 持久化配置:
sudo mkdir -p /var/log/journal sudo systemd-tmpfiles --create --prefix /var/log/journal sudo systemctl restart systemd-journald - 备份与清理建议:
- 备份:
sudo tar -czvf journal_$(date +%F).tar.gz -C /var/log/journal . - 按时间清理旧日志:
sudo journalctl --vacuum-time=7d或--vacuum-size=1G
- 备份:
- 说明:备份前确认已启用持久化,否则重启后易失日志会丢失。
五 恢复与最佳实践
- 恢复方法:
- 从 tar 归档恢复:
sudo tar -xzvf logs_20250401.tar.gz -C /var/log/ - 从 rsync 拷贝回:
sudo rsync -aAXv /backup/ubuntu-logs/ /var/log/ - 触发服务重新打开日志:
sudo systemctl reload rsyslog
- 从 tar 归档恢复:
- 最佳实践:
- 组合策略:本地 logrotate 控体积 + rsyslog 集中留存 + 远端 rsync/tar 做离线或异地归档。
- 容量与保留:按合规要求设置保留周期(如 7–90 天),并定期校验可恢复性。
- 安全与隔离:备份目录与传输链路使用最小权限与加密;集中日志服务器按来源主机与程序分目录存放,便于审计。
- 监控告警:对日志写入失败、磁盘空间不足、轮转异常等配置监控与告警。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu日志备份方法有哪些
本文地址: https://pptw.com/jishu/772973.html
