Rehber 08 Mayıs 2026 · 5 dakika okuma

Otomatik Yedeklemeyi Dış Depolamaya Göndermek: Eksiksiz Kurulum

Sunucudaki yedekleri aynı sistemde tutmak, disk arızası veya fidye yazılımı karşısında sizi korumaz. rclone, cron ve şifreleme ile dış depolamaya tam otomasyonu adım adım kurun.

Sunucudaki bir disk arızası ya da fidye yazılımı saldırısı, yalnızca aynı makine üzerinde tutulan yedekleri de birlikte siler. Bu noktada \"düzenli yedek alıyordum\" demek hiçbir şeyi değiştirmez. Dış depolamaya otomatik yedek göndermek bu tek hata noktasını ortadan kaldırır; ancak hangi sağlayıcıyı seçmek, hangi aracı kullanmak ve nasıl zamanlama kurmak gerektiği pratikte çoğu kişiye belirsiz kalır. Bu yazıda Backblaze B2, Wasabi ve Cloudflare R2 gibi nesne depolama seçeneklerini somut fiyatlarla karşılaştıracak, rclone ile adım adım bağlantı kuracak, yedekleri şifreleyerek gönderecek ve cron ile tam otomasyonu tamamlayacaksınız.

Yerel Yedek Neden Yetmez?

Aynı sunucuda tutulan yedek şu üç senaryoda işe yaramaz:

  • Disk fiziksel olarak arızalanır: RAID dizisi bile eş zamanlı çift disk kaybında veriyi kurtaramaz.
  • Ransomware yedek dizinini de şifreler: Fidye yazılımları /var/backups gibi klasik yolları özellikle hedef alır.
  • Veri merkezi fiziksel felakete uğrar: Yangın, su baskısı veya güç kesintisi tüm sistemi dışarıdan erişilemez hale getirebilir.

Yedekleme sektöründe yerleşmiş kural 3-2-1 şöyledir: 3 kopya, 2 farklı medya türü, 1 coğrafi olarak farklı konum. Dış depolama bu üçüncü konumu karşılar. Sunucunun bulunduğu veri merkezinin tamamen erişilemez olduğu bir durumda bile yedeklerinize ulaşabilmek için bu adım zorunludur.

Dış Depolama Seçenekleri: Fiyat ve Özellik Karşılaştırması

Nesne depolama (object storage) hizmetleri yedekleme için en yaygın dış depolama tercihidir. Aşağıdaki tablo Mayıs 2026 itibarıyla güncel liste fiyatlarını göstermektedir:

Sağlayıcı Depolama (GB/ay) Çıkış Trafiği (egress) Minimum Ücret rclone Desteği
Backblaze B2 $0,006 $0,01/GB Yok Evet
Wasabi $0,0069 Ücretsiz $6,99/ay Evet
Cloudflare R2 $0,015 Ücretsiz Yok Evet (S3 uyumlu)
AWS S3 Standard $0,023 $0,09/GB Yok Evet
Hetzner Storage Box €3,35/TB Ücretsiz (rsync/SFTP) €3,35/ay Evet (SFTP)

Seçim kriteri senaryoya göre değişir:

  • 100 GB altı + egress nadiren: Backblaze B2 en düşük birim maliyetli seçenek.
  • 100–500 GB + sık geri yükleme ihtimali: Wasabi veya Cloudflare R2; egress ücretsiz olduğu için toplam maliyet daha öngörülebilir.
  • GDPR kapsamında Avrupa'da veri kalmak zorunda: Hetzner Storage Box Almanya lokasyonu, sabit aylık fiyatla tahmin edilebilir bir maliyet sunar.
  • AWS ekosistemi zaten kullanılıyorsa: S3 entegrasyon kolaylığı sağlar ancak birim maliyet en yüksek seçenektir.

rclone ile Dış Depolamaya Bağlantı Kurma

rclone, 70'ten fazla bulut depolama sağlayıcısını destekleyen açık kaynaklı bir transfer aracıdır. Tek yapılandırma dosyasıyla farklı sağlayıcılar arasında geçiş yapılabilir.

Kurulum:

Backblaze B2 için yapılandırma:

rclone config

Sihirbazda sırasıyla: n (yeni remote), isim olarak b2remote, tip olarak b2, ardından B2 kontrol panelinden aldığınız Application Key ID ve Application Key değerlerini girin.

Bağlantıyı test edin:

rclone ls b2remote:yedek-bucket-adi

Wasabi için yapılandırma (S3 uyumlu endpoint ile):

rclone config create wasabi s3 \
  provider Wasabi \
  access_key_id WASABI_KEY \
  secret_access_key WASABI_SECRET \
  region eu-central-1 \
  endpoint s3.eu-central-1.wasabisys.com

Hetzner Storage Box için rsync veya SFTP kullanılır; rclone'da sftp tipi seçilip hostname, kullanıcı adı ve SSH anahtarı tanımlanır.

İlk manuel transfer testi yapmak, sonraki otomasyon adımlarından önce zorunludur:

rclone copy /var/backups/test b2remote:yedek-bucket-adi/test --progress

Yedekleme Scriptini Yazmak

Aşağıdaki script MySQL dumpını alır, sıkıştırır ve rclone ile dış depolamaya gönderir. Aynı zamanda 30 günden eski uzak yedekleri temizler:

#!/bin/bash
# /usr/local/bin/backup-remote.sh

DATE=$(date +%Y-%m-%d)
BACKUP_DIR=\"/var/backups\"
REMOTE=\"b2remote:yedek-bucket-adi\"
LOG=\"/var/log/backup-remote.log\"

# MySQL dump al ve sıkıştır
mysqldump -u root --all-databases | gzip > \"$BACKUP_DIR/mysql-$DATE.sql.gz\"

# /etc ve uygulama dizini yedekle
tar -czf \"$BACKUP_DIR/etc-$DATE.tar.gz\" /etc
tar -czf \"$BACKUP_DIR/app-$DATE.tar.gz\" /var/www

# Dış depolamaya gönder
rclone sync \"$BACKUP_DIR\" \"$REMOTE/$HOSTNAME\" \
  --exclude \"*.tmp\" \
  --log-file \"$LOG\" \
  --log-level INFO

# 30 günden eski yedekleri uzaktan sil
rclone delete \"$REMOTE/$HOSTNAME\" \
  --min-age 30d \
  --log-file \"$LOG\"

Script'i çalıştırılabilir yapın ve ilk kez manuel test edin:

chmod +x /usr/local/bin/backup-remote.sh
/usr/local/bin/backup-remote.sh

rclone sync yerine rclone copy da kullanılabilir; fark şudur: sync uzakta olup yerelde olmayan dosyaları siler, copy ise yalnızca ekler. Silme işlemi istemiyorsanız copy tercih edin ve eski yedekleri --min-age ile ayrıca temizleyin.

Şifreleme: Verileri Göndermeden Önce Korumak

Nesne depolamaya aktarılan yedekler, sağlayıcı tarafında okunabilir olmamalıdır. Bunu sağlamanın en pratik yolu rclone crypt modülüdür.

rclone config
# Tip: crypt
# Remote: b2remote:yedek-bucket-adi/encrypted
# Dosya adı şifreleme: standard
# Şifre: güçlü rastgele bir parola belirleyin

Bu remote'a b2crypt adını verdikten sonra scriptteki REMOTE değişkenini b2crypt: olarak değiştirmeniz yeterlidir. B2 panelinde dosyalar anlamsız isimlerle görünür; içerikler AES-256 ile şifrelenmiş olur. Anahtarı yalnızca siz bilirsiniz.

Alternatif olarak age aracı ile dump dosyasını göndermeden önce şifreleyebilirsiniz:

# age kurulumu
apt install age

# Anahtar çifti üret
age-keygen -o ~/.age/key.txt

# Şifreli dump oluştur
mysqldump -u root --all-databases | gzip | \
  age -r $(grep public ~/.age/key.txt | awk \'{print $NF}\') \
  > \"$BACKUP_DIR/mysql-$DATE.sql.gz.age\"

Geri yükleme sırasında özel anahtarı kaybetmek tüm yedekleri erişilemez kılar. Özel anahtarı mutlaka güvenli bir parola yöneticisine veya ayrı bir fiziksel ortama kaydedin.

Cron ile Zamanlama ve İzleme

Script hazır olduğunda cron ile gece otomatik çalıştırın:

crontab -e
# Her gece 02:30'da çalıştır
30 2 * * * /usr/local/bin/backup-remote.sh >> /var/log/backup-remote.log 2>&1

Script başarısız olduğunda e-posta bildirimi almak için sonuna aşağıdaki bloğu ekleyin:

EXIT_CODE=$?
if [ $EXIT_CODE -ne 0 ]; then
  echo \"Yedekleme hatasi: $DATE, cikis kodu: $EXIT_CODE\" | \
    mail -s \"BACKUP FAILED - $HOSTNAME\" [email protected]
fi

Daha güvenilir bir izleme için healthchecks.io (ücretsiz plan mevcut) kullanın. Her başarılı çalışma sonunda bir URL'ye ping atılır; 24 saat ping gelmezse e-posta veya Telegram bildirimi gönderilir:

# Başarılı çalışma sonunda ping at
curl -fsS --retry 3 https://hc-ping.com/sizin-uuid-degeri > /dev/null

Bu yaklaşım, cron'un sessizce hata verdiği durumları (yanlış ortam değişkeni, disk dolması, ağ kesintisi) yakalamanızı sağlar. Yalnızca log dosyasına güvenmek yetmez; çünkü log yazmak da başarısız olabilir.

Sonuç

Dış depolamaya otomatik yedek göndermek tek bir rclone copy komutundan ibaret değildir. Çalışan bir sistem şu dört unsuru birden karşılamalıdır: düzenli zamanlama, şifreli transfer, uzakta otomatik temizlik ve başarısız çalışma bildirimi. 100 GB altı veri için Backblaze B2 + rclone crypt kombinasyonu en düşük maliyetli ve kurulumu en hızlı başlangıç noktasıdır. GDPR uyumluluğu veya sabit maliyet öncelikliyse Hetzner Storage Box + SFTP tercih edin. Bugün scripti kurup ilk manuel transferi test edin; ardından cron ve healthchecks.io ile izlemeyi aktif edin. Bir sonraki adım olarak yedekten gerçek geri yükleme testi yapın — çünkü test edilmemiş yedek, yedek sayılmaz.

Etiketler: #yedekleme #rclone #backblaze b2 #wasabi #cloudflare r2 #otomatik yedek #nesne depolama #vds #vps #cron #şifreleme

Hosting karşılaştırması yapmaya hazır mısın?

100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.

Hosting Karşılaştır →

İlgili Yazılar

0 ürün seçildi
NetKıyas AI
Hosting danışmanınız
Merhaba! Ben NetKıyas yapay zekâ asistanı. Hosting, VDS, VPS veya sunucu seçiminde size yardımcı olabilirim. Ne arıyorsunuz?