首页/数据/备份与容灾速查/rsync 备份脚本模板要点
本包目录(206 条)

rsync 备份脚本模板要点

可值守的备份脚本需要严格错误处理、日志与退出码区分、失败告警,以及 rsync 特有退出码 24(源文件传输中消失)的处理。

备份与容灾速查数据更新于 2026-10-12

脚本骨架

脚本骨架
#!/usr/bin/env bash
set -euo pipefail
LOG=/var/log/backup-$(date +%F).log
exec >>"$LOG" 2>&1

rsync -a --delete --exclude-from=/etc/backup-exclude.txt \
      /data/ backup@10.0.0.5:/backup/data/
rc=$?
case $rc in
  0)  echo "OK: $(date)" ;;
  24) echo "WARN: 有源文件在传输中消失,视为成功" ;;
  *)  echo "FAIL rc=$rc" >&2; exit $rc ;;
esac
rsync 退出码 24 表示传输期间源端文件消失,很多团队按成功处理;其余非零值都应触发告警。

易错点

  • set -e 与管道、命令替换组合时行为微妙,关键步骤建议显式检查返回值
  • 日志不带时间戳与主机名,多机汇总时无法快速定位来源

数据来源与参考

  • rsync 手册(退出码说明)
  • Bash 手册(set -euo pipefail)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌