OffshoreVps
Güvenlik8 Eki 20268 dk okumaYazan: OffshoreVps ekibi

VPS restic ile nasıl yedeklenir: otomatik ve şifreli

3-2-1 kuralı, nelerin yedekleneceği, şifreli bir restic kurulumu, bir cron betiği ve geri yüklemeyi neden test etmeniz gerektiği. Sağlayıcı anlık görüntüleri yeterli değildir.

Bir VPS arızalanabilir, yanlışlıkla silinebilir ya da kötü bir güncellemeyle bozulabilir. Tek koruma, test ettiğiniz bir yedektir. Bu rehber ücretsiz araçlarla basit, otomatik, şifreli yedekler kurar.

VPS’i yedeklemek için kullanılan komutları gösteren VPS üzerindeki terminal penceresi, “sudo apt install -y restic” ile başlıyor
Bu rehberde sunucunuzda çalıştıracağınız komutlardan örnekler.

3-2-1 kuralı

Verinizin 3 kopyasını, 2 farklı depolama türünde tutun ve 1 kopyayı tamamen başka bir yerde saklayın. Bir VPS için bu genellikle canlı veri, yerel bir anlık görüntü ve farklı bir sağlayıcıdaki ya da farklı bir ülkedeki sunucu dışı bir kopya anlamına gelir.

Neleri yedeklemeli

  • Web sitesi dosyaları ve yüklemeler (/var/www).
  • Önce bir dosyaya dökülen veritabanları (canlı veritabanı dosyalarını asla kopyalamayın).
  • Yapılandırma: /etc/nginx, /etc değişiklikleri, Docker Compose dosyaları ve birimleri.
  • Cron işleri ve özel betikler.

İşletim sistemini dakikalar içinde yeniden kurabilirsiniz. Yeniden kuramayacağınız şey verileriniz ve ayarlarınızdır.

Şifreli, tekilleştirilmiş yedekler için restic kullanın

sudo apt install -y restic
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init

Parola dosyasını uzun rastgele bir dizeyle oluşturun ve bir kopyasını güvenli bir yerde saklayın. Bu parolayı kaybederseniz yedekler açılamaz. restic ayrıca S3 uyumlu depolamayı destekler, böylece herhangi bir nesne deposuna gönderebilirsiniz.

Bu rehberin adımları sırasıyla: 1. 3-2-1 kuralı; 2. Nelerin yedekleneceği; 3. Şifreli, tekilleştirilmiş yedekler için restic kullanın; 4. Bir yedekleme betiği; 5. Geri yüklemeyi test edin; 6. Anlık görüntüler yardımcı olur ama yeterli değildir
Bu rehberdeki adımlar sırasıyla.

Bir yedekleme betiği

#!/bin/bash
set -e
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass

mysqldump --single-transaction --all-databases | gzip > /var/backups/db.sql.gz
restic backup /var/www /etc /var/backups/db.sql.gz
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

Bunu /usr/local/bin/backup.sh olarak kaydedin, çalıştırılabilir yapın ve zamanlayın:

sudo chmod +x /usr/local/bin/backup.sh
echo "30 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1" | sudo tee /etc/cron.d/backup

Geri yüklemeyi test edin

restic snapshots
restic restore latest --target /tmp/restore-test --include /etc/nginx

Hiç geri yüklemediğiniz bir yedek yalnızca bir umuttur. Üç ayda bir ve bir şeyi değiştirdikten sonra her zaman test edin.

Anlık görüntüler yardımcı olur ama yeterli değildir

Sağlayıcı anlık görüntüleri hızlıdır ve riskli değişikliklerden önce işe yarar, ancak aynı sağlayıcıda ve hesapta durur. Onları bir kolaylık olarak görün ve bağımsız bir sunucu dışı kopya tutun.