Herkesin yedeği vardır, ta ki birini geri yüklemeye çalışana kadar. Klasör boş çıkar, cron görevi mart ayında ölmüştür ya da arşiv az önce bozulan diskin üzerindedir. restic bunların çoğunu çözer: sizin tarafınızda şifreler, her veri parçasını bir kez saklar ve tek bir dosyayı geri yüklemeyi tüm sunucuyu yedeklemek kadar kolaylaştırır.
İşte Ubuntu veya Debian üzerinde gerçekten güveneceğimiz bir kurulum.
1. restic'i kurun
apt update && apt install -y restic
restic self-update
Dağıtım paketleri geride kalır; self-update güncel sürümü indirir.
2. Repository için bir yer seçin
Repository, koruduğunuz sunucuda durmamalıdır. İki yaygın seçenek:
- SFTP üzerinden başka bir sunucu:
sftp:backup@203.0.113.20:/srv/restic/web1 - S3 uyumlu nesne depolama:
s3:https://s3.example.com/my-bucket/web1
3. Kimlik bilgilerini saklayın
Zamanlayıcı ve kabuğunuz aynı ayarları kullansın diye her şeyi yalnızca root'un okuyabildiği tek bir dosyada tutun:
cat > /root/.restic-env <<'EOF'
export RESTIC_REPOSITORY="s3:https://s3.example.com/my-bucket/web1"
export RESTIC_PASSWORD_FILE="/root/.restic-pass"
export AWS_ACCESS_KEY_ID="your-key-id"
export AWS_SECRET_ACCESS_KEY="your-secret"
EOF
openssl rand -base64 32 > /root/.restic-pass
chmod 600 /root/.restic-env /root/.restic-pass
Şimdi /root/.restic-pass içeriğini şifre yöneticinize kopyalayın. O olmadan yedekler çözülemez — ne sizin ne de başka birinin tarafından.
4. Başlatın ve ilk yedeği alın
source /root/.restic-env
restic init
restic backup /etc /home /root /srv /var/www \
--exclude-caches --exclude '/root/.cache'
restic snapshots
Yolları verilerinizin gerçekten bulunduğu yerlere göre ayarlayın. Docker volume'ları /var/lib/docker/volumes altındadır; uygulama verileri çoğunlukla /srv veya /opt içindedir.
5. Veritabanları: önce döküm, sonra yedek
Çalışan bir veritabanının ham dosyalarını yedeklemeyin. Yedekten hemen önce döküm alın:
mkdir -p /var/backups/db
sudo -u postgres pg_dump -Fc mydb > /var/backups/db/mydb.dump
/var/backups/db dizinini yedek yollarına ekleyin. PostgreSQL rehberimizde dökümler hakkında daha fazlası var.
6. systemd ile zamanlayın
Burada zamanlayıcı cron'dan iyidir: journal'a log yazar ve sunucu o saatte kapalıysa çalıştırmayı sonradan telafi eder.
# /etc/systemd/system/restic-backup.service
[Unit]
Description=restic backup
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'source /root/.restic-env && restic backup /etc /home /root /srv /var/www /var/backups/db --exclude-caches && restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune'
# /etc/systemd/system/restic-backup.timer
[Unit]
Description=Daily restic backup
[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true
[Install]
WantedBy=timers.target
systemctl daemon-reload
systemctl enable --now restic-backup.timer
systemctl list-timers restic-backup.timer
forget --prune 7 günlük, 4 haftalık ve 6 aylık snapshot tutar ve gerisini siler. Bir veritabanı döküm adımınız varsa onu bir ExecStartPre= satırına koyun.
7. Gerçekten bir şey geri yükleyin
"Yedeğimiz var" sözünü gerçeğe dönüştüren adım budur. Bir dizini geçici bir klasöre geri alın ve inceleyin:
source /root/.restic-env
restic restore latest --target /tmp/restore-test --include /etc/nginx
ls -la /tmp/restore-test/etc/nginx
restic check
Bunu şimdi bir kez, sonra birkaç ayda bir yapın. restic check repository yapısını doğrular; geri yükleme ise verinin gerçekten orada olduğunu kanıtlar.
restic ve Managed Backups
Birbirleriyle yarışmazlar. Managed Backups her gün tüm sunucunun bir geri yükleme noktasını alır ve bunu panelden geri alırsınız — kötü giden bir güncellemeden sonraki hızlı çözüm. Aylık $2'dır ve her yıllık plana ücretsiz dahildir. restic ise kontrol ettiğiniz depolamada dosya düzeyinde, sunucu dışı kopyalar verir; sorun geçen salı silinen bir dosya olduğunda ya da tamamen altyapımızın dışında bir kopya istediğinizde bu önemlidir.
Hassas veri saklıyorsanız bunu tam disk şifreleme ile birleştirin ya da kendi yedek hedefinizi çalıştırmak için şifreli depolama kullanım senaryosuna göz atın. Çoğu küçük sunucu ve yedek görevleri için bir Micro plan yeterlidir.
Yorumlar
Henüz yorum yok. İlk olun.