Skip to main content

备份

3-2-1 原则

  • 确保数据有 3 份副本,即除数据主体之外有两个备份
  • 确保这两个备份位于 2 种不同的存储介质上(或者不同的存储机制)
  • 确保有 1 份异地备份

The 3-2-1 Backup Strategy

Restic

Restic 是一个非常简单好用的备份工具,可以只对变化的文件进行增量备份,支持端到端加密,支持多种备份目标,包括对常见对象存储服务的原生支持。

因此 Restic 非常适合用作异地备份,例如你可以使用 Backblaze B2 作为异地备份的目标,Backblaze B2 是一个简单好用、价格便宜的对象存储,1T 数据每月的存储价格是 $5,按实际用量收费。

Systemd

创建一个使用 Restic 备份的任务

[Unit]
Description=Backup via restic

[Service]
Type=simple
Environment="B2_ACCOUNT_ID={{ restic_b2_account_id }}"
Environment="B2_ACCOUNT_KEY={{ restic_b2_account_key }}"
Environment="RESTIC_CACHE_DIR=/tmp/restic"
ExecStart=/bin/bash -c "restic -r {{ restic_repository }} -p /storage/.restic/key backup -v {{ restic_backup_paths | join(' ') }}"

其中:

  • B2_ACCOUNT_IDB2_ACCOUNT_KEY 是 Backblaze B2 的 API 米呀
  • RESTIC_CACHE_DIR 是 Restic 的临时文件目录,可以放在性能更高的磁盘上

再创建一个定时任务:

[Unit]
Description=Backup via restic every week

[Timer]
OnCalendar=weekly

[Install]
WantedBy=timers.target

清理备份

restic forget --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --keep-yearly 75 --dry-run