首页/数据/备份与容灾速查/备份脚本通用健壮性模式

备份脚本通用健壮性模式

自研备份脚本的通用骨架:严格模式、独立日志、锁防重入、结果校验与统一告警出口,适用于 rsync、tar、mysqldump 等各类工具。

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

骨架模式(示例)

骨架模式(示例)
#!/usr/bin/env bash
set -euo pipefail
exec 9>/var/lock/mybackup.lock
flock -n 9 || { echo "已有任务在运行"; exit 0; }
LOG=/var/log/mybackup-$(date +%F).log
exec >>"$LOG" 2>&1

run() { echo "== $(date -Is) $* =="; "$@"; }
run tar -czf /backup/data-$(date +%F).tar.gz -C /srv data
run sha256sum /backup/data-$(date +%F).tar.gz > /backup/data-$(date +%F).tar.gz.sha256
echo "DONE $(date -Is)"
统一约定:非零退出视为失败并触发告警;产物必须带校验文件;日志与备份同级管理保留周期。

易错点

  • 脚本以 root 处理所有路径:权限过大,建议按最小权限运行并限制目录范围
  • 失败留下的半成品与正式产物混放,会被下游误当有效备份使用

数据来源与参考

  • Bash 手册(set -euo pipefail、exec)
  • man 1 flock
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌