小分段1:确认目标为美国(us-east/ us-west)云主机或 VPS,已开通 SSH 与 sudo 权限。
小分段2:检查系统:Ubuntu 20.04/22.04 或 CentOS 7/8;执行 sudo apt update && sudo apt install -y curl git rsync python3-pip(或 yum)。
小分段3:准备存储后端(S3/Backblaze/B2),创建 IAM 用户与最小权限策略,记录 AccessKey 与 Secret。
小分段1:安装 restic(跨平台且支持 S3):curl -L https://github.com/restic/restic/releases/download/v0.15.2/restic_0.15.2_linux_amd64.bz2 | bunzip2 > /usr/local/bin/restic && chmod +x /usr/local/bin/restic。
小分段2:初始化仓库(示例 S3):export AWS_ACCESS_KEY_ID=xxx AWS_SECRET_ACCESS_KEY=yyy && restic -r s3:s3.amazonaws.com/my-bucket init --password-file=/root/.restic-pass。
小分段3:配置密钥文件与权限:echo "你的备份密码" > /root/.restic-pass && chmod 600 /root/.restic-pass。
小分段1:编写备份脚本 /usr/local/bin/backup_www.sh:
#!/bin/bash
export AWS_ACCESS_KEY_ID=xxx
export AWS_SECRET_ACCESS_KEY=yyy
restic -r s3:s3.amazonaws.com/my-bucket --password-file=/root/.restic-pass backup /var/www --tag www --cleanup-cache
restic -r s3:s3.amazonaws.com/my-bucket --password-file=/root/.restic-pass forget --keep-daily 7 --keep-weekly 4 --prune
小分段2:创建 systemd unit /etc/systemd/system/backup_www.service 与 timer:
[Unit] Description=WWW Backup
[Service] Type=oneshot ExecStart=/usr/local/bin/backup_www.sh
[Install] WantedBy=multi-user.target
timer 每日示例 /etc/systemd/system/backup_www.timer:OnCalendar=daily Persistent=true。启用:systemctl enable --now backup_www.timer。
小分段1:安装 Ansible:pip3 install ansible。创建 inventory(hosts)指向美国服务器。
小分段2:示例 playbook(site.yml)任务:安装 restic、上传 /usr/local/bin/backup_www.sh、部署 systemd unit、配置环境变量(vault 或 Ansible Vault 加密凭证)。
小分段3:运行:ansible-playbook -i hosts site.yml --ask-vault-pass,便可将变更批量下发到多台 www 服务器。
小分段1:在被监控服务器安装 node_exporter 并在 Prometheus 中抓取指标。
小分段2:为备份写健康脚本 /usr/local/bin/backup_check.sh,输出 0/1 或向 Prometheus Pushgateway 推送抓取点:echo "backup_success 1" | curl --data-binary @- http://pushgateway:9091/metrics/job/backup/www。
小分段3:Prometheus 配置告警 rule:当 backup_success 为 0 超过 15 分钟触发 Alertmanager,发送到 Slack/Email。
小分段1:恢复示例(restic restore):restic -r s3:s3.amazonaws.com/my-bucket --password-file=/root/.restic-pass restore latest --target /tmp/restore_www。务必在演练环境测试。
小分段2:安全要点:SSH 使用密钥登录并禁用密码;S3 权限最小化;备份密码使用 Vault 或 cloud KMS 加密;防火墙(ufw)限制出入站。
小分段3:定期校验备份完整性:restic check --read-data,并把结果记录到监控系统。
答:使用 HTTPS/TLS(启用 S3 加密传输)、在云端启用加密静态数据(SSE),并使用 IAM 最小权限、KMS 管理密钥;备份敏感数据前做字段脱敏;记录访问日志并在合规窗口内保存。
答:实现步骤包括:备份脚本写入 exit code 与结果文件;备份后调用 Pushgateway 或写指标到 node_exporter textfile;Prometheus 配置 alert rule(比如 30 分钟内无成功指标触发告警);Alertmanager 负责通知到 Email/Slack/PagerDuty。
答:提前制定恢复流程:定期演练恢复(确认时间与步骤)、将恢复脚本模板化(restic restore 命令、数据库导入步骤)、保持最近多份快照本地缓存以减少下载时间、并把关键恢复步骤写入运行手册与自动化 playbook,配合滚动部署减少服务中断。