骨架模式(示例)
骨架模式(示例)
#!/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)"统一约定:非零退出视为失败并触发告警;产物必须带校验文件;日志与备份同级管理保留周期。