内容 / 指南/ 备份

加密场外备份 与恶心

每天从你的东道主的快照是针对错误的保险,而不是针对失去整个东道主. 真正的备份住在别的地方,并被加密. 神经病两者兼而有之,而且是一个二进制。

1. 安装静态

apt update && apt install -y restic

reasic 写一个单一的加密寄存器 。 它可以活在S3上,Backflaze B2上,另一个服务器通过SFTP,甚至还有第二个Buran VPS.

2. 创建存储处

export RESTIC_REPOSITORY="sftp:backup@other-host:/srv/backups/myserver"
export RESTIC_PASSWORD="a-long-unique-passphrase"
restic init

在密码管理器中保留密码句 。 如果你失去它,数据就消失了,这就是加密的要点。 对于自动任务,将其存储在仅可通过根读取的环境文件中:

cat > /etc/restic.env <<'EOF'
RESTIC_REPOSITORY=sftp:backup@other-host:/srv/backups/myserver
RESTIC_PASSWORD=change-me
EOF
chmod 600 /etc/restic.env

3. 第一个备份

set -a; . /etc/restic.env; set +a
restic backup /etc /root /home /var/www --exclude-caches
restic snapshots

数据库需要一个垃圾堆,而不是文件副本:运行中的PostgreSQL数据目录不一致. 先丢弃,然后退后 垃圾文件夹。 看我们的 PostgreSQL 引导 给垃圾场的命令。

4. 用系统计时器夜跑

cat > /etc/systemd/system/restic-backup.service <<'EOF'
[Unit]
Description=restic backup
[Service]
Type=oneshot
EnvironmentFile=/etc/restic.env
ExecStart=/usr/bin/restic backup /etc /root /home /var/www --exclude-caches
ExecStartPost=/usr/bin/restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
EOF
cat > /etc/systemd/system/restic-backup.timer <<'EOF'
[Unit]
Description=Nightly restic backup
[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true
[Install]
WantedBy=timers.target
EOF
systemctl daemon-reload
systemctl enable --now restic-backup.timer

5. 试验恢复情况——今天,不是紧急情况

set -a; . /etc/restic.env; set +a
restic snapshots
restic restore latest --target /tmp/restore-test
ls -la /tmp/restore-test/etc

你从未恢复过的备份是希望,而不是后援. 每几个月重复一次测试——并检查寄存器是否实际增长.

快速回答

备份仓库应该住在哪里?

除您备份的机器外, 任何地方: 对象存储像 Backflaze B2 , 另一个服务器在 SFTP 上, 或者第二个 VPS 。 在同一主机上的备份无法活过丢失的主机.

我需要多少空间?

reasic deduclements and compresses,因此典型的服务器很少在变化的每个月会长出几GB以上. 50-100GB的远程存储器对于一个小型服务器来说是充足的.

我还需要主机快照吗?

对 Buran快照在一击中恢复了整台机器,并适合“五分钟前我把它弄坏了”。 场外休息备份覆盖硬件损失和操作员错误,这些错误超过快照窗口.

需要第二台机器来支撑吗? 3NAT欧元的盒子不错.

相关