Skip to content
Bloga dön
Rehber Rclone Bulut Yedekleme Linux Sistem Yönetimi Otomasyon

Rclone ile Bulut Yedekleme Mimarisi: Google Drive ve S3 Uyumlu Depolama Sağlayıcılarında Otomasyon

Linux sistemlerde Rclone kullanarak popüler bulut depolama servislerine şifreli, otomatik ve güvenli yedekleme senaryoları oluşturmanın adım adım rehberi.

Caner Serbest

Sistem ve Altyapı

4 dk okuma

Rclone ile Bulut Yedekleme Mimarisi: Google Drive ve S3 Uyumlu Depolama Sağlayıcılarında Otomasjon

Veri yedekleme, sistem yöneticilerinin günlük rutinlerinin en kritik ve en çok ihmal edilmeye meyilli parçalarından biridir. Yerel disklerde tutulan yedekler, donanım arızaları, fidye yazılımı (ransomware) saldırıları veya fiziksel felaketler karşısında tek başına yetersiz kalır. Harici bir bulut depolama alanına güvenli, şifrelenmiş ve otomatik bir yedekleme hattı kurmak, modern sistem yönetiminin vazgeçilmez bir standardıdır.

Bu yazıda, komut satırının “rsync” aracına benzeyen ancak onlarca bulut sağlayıcısını destekleyen Rclone aracını ele alacağız. Google Drive, Amazon S3, Backblaze B2 veya Nextcloud gibi farklı platformları yerel dosya sisteminiz gibi yönetmenizi sağlayan bu araçla, kurumsal standartlarda bir yedekleme mimarisi kuracağız.


Rclone Nedir ve Neden Tercih Edilmelidir?

Rclone, bulut depolama sağlayıcılarındaki dosyaları yönetmek ve senkronize etmek için Go diliyle yazılmış açık kaynaklı bir komut satırı aracıdır. Alternatif grafik arayüzlü yazılımlara kıyasla şu avantajları sunar:

  1. Geniş Sağlayıcı Desteği: 40’tan fazla bulut depolama servisini destekler.
  2. Şifreleme (Crypt): Hassas verilerinizi buluta göndermeden önce yerel olarak uçtan uca şifreleyebilir.
  3. Bant Genişliği ve Hız Yönetimi: Ağınızı boğmadan, belirlediğiniz hız sınırlarıyla veri transferi yapabilir.
  4. Düşük Kaynak Tüketimi: Arka planda minimum CPU ve RAM tüketerek çalışır.

1. Rclone Kurulumu ve Temel Yapılandırma

Linux tabanlı sisteminize (Ubuntu, Debian, CentOS vb.) Rclone kurmak oldukça basittir. Resmi kurulum betiğini kullanarak en güncel kararlı sürümü sisteminize dahil edebilirsiniz:

sudo -v ; curl https://rclone.org/install.sh | sudo bash

Kurulum tamamlandıktan sonra sürümü kontrol edelim:

rclone version

Uzak Sunucu (Remote) Tanımlama

Rclone’un bulut servisleriyle iletişim kurabilmesi için bir “remote” (uzak bağlantı profili) oluşturması gerekir. Yapılandırma sihrini başlatmak için:

rclone config

Bu komut sizi interaktif bir menüye yönlendirecektir:

  • n tuşuna basarak yeni bir remote (yeni uzak sunucu) oluşturun.
  • name kısmına anlamlı bir isim verin (Örn: gdrive-yedek veya s3-depo).
  • Listeden kullanmak istediğiniz bulut sağlayıcısının numarasını seçin (Örn: Google Drive için drive).
  • İstemci ID (Client ID) ve Gizli Anahtar (Client Secret) adımlarını boş bırakarak varsayılan değerlerle devam edebilirsiniz (özel bir API projesi kullanmıyorsanız).
  • Yetkilendirme aşamasında (Auto config), eğer aracı grafik arayüzü olan bir masaüstü işletim sisteminde çalıştırıyorsanız tarayıcınız otomatik açılacaktır. Başına uzak bir SSH sunucusunda (headless) çalıştırıyorsanız, ekrandaki bağlantıyı yerel tarayıcınızda açıp aldığınız doğrulama kodunu terminale yapıştırmanız gerekecektir.

Yapılandırma bittikten sonra bağlantıyı test etmek için:

rclone lsd gdrive-yedek:

Bu komut, Google Drive hesabınızdaki ana dizinleri listelemelidir. Eğer listeleniyorsa bağlantı başarılı demektir.


2. Uçtan Uca Güvenlik: Şifrelenmiş Remote Oluşturma

Verilerinizi halka açık veya üçüncü taraf bulut sağlayıcılarında saklarken gizlilik en büyük endişedir. Google Drive veya benzeri bir servis sağlayıcı dosya içeriğinizi okuyabilir. Rclone’un crypt katmanı, dosyaları buluta göndermeden önce yerel olarak şifreler.

Şifreli bir katman oluşturmak için tekrar rclone config çalıştırın:

  1. Yeni remote oluştur (n).
  2. İsim ver (Örn: gdrive-encrypted).
  3. Tür olarak crypt seçeneğini seçin.
  4. remote parametresi olarak daha önce oluşturduğunuz ham remote’u ve alt dizini gösterin (Örn: gdrive-yedek:yedekler).
  5. Şifreleme gücünü seçin (Standart şifreleme için varsayılanlar uygundur).
  6. Güçlü bir şifre (password) ve tuz (salt) belirleyin. Bu şifreleri kaybetmeniz durumunda verilerinizi asla geri getiremezsiniz.

Artık gdrive-encrypted: adresine yazdığınız her veri otomatik olarak şifrelenecek ve buluta o şekilde gönderilecektir.


3. Senaryo: Veritabanı ve Dosya Yedekleme Otomasyonu

Sistemimizde /var/www/html altındaki web dosyalarını ve PostgreSQL veritabanı yedeğini her gece buluta gönderen bir otomasyon kuralım.

Öncelikle yedekleri geçici olarak toplayacağımız bir dizin oluşturalım:

mkdir -p /opt/backup/temp

Yedekleme betiğini /opt/backup/backup.sh adıyla oluşturalım:

#!/bin/bash

# Değişkenler
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/opt/backup/temp"
REMOTE_NAME="gdrive-encrypted:sunucu-yedekleri"

echo "[+] Yedekleme süreci başlatıldı: $(date)"

# 1. Web dosyalarını arşivle
tar -czf "$BACKUP_DIR/web_files_$DATE.tar.gz" /var/www/html

# 2. PostgreSQL veritabanını yedekle
pg_dump -U postgres mydb > "$BACKUP_DIR/db_backup_$DATE.sql"

# 3. Rclone ile şifreli buluta gönder
rclone move "$BACKUP_DIR/" "$REMOTE_NAME/" --min-age 1m --bwlimit 5M

# 4. Yerel temp dizinini temizle
rm -rf "$BACKUP_DIR"/*

echo "[+] Yedekleme başarıyla tamamlandı ve buluta aktarıldı: $(date)"

Betiğe çalıştırma izni verelim:

chmod +x /opt/backup/backup.sh

Not: Komut satırındaki --bwlimit 5M parametresi, yedekleme sırasında internet hattınızın veya sunucu çıkış bandınızın tamamen dolmasını engellemek için yükleme hızını saniyede 5 Megabayt ile sınırlandırır.


4. Cron Job ile Otomasyona Bağlama

Hazırladığımız bu betiğin insan müdahalesi olmadan düzenli çalışması için Cron servisini kullanacağız.

Crontab düzenleyicisini açın:

sudo crontab -e

Her gece saat 03:00’te bu betiğin çalışmasını ve çıktılarının bir log dosyasına yazılmasını sağlayın:

0 3 * * * /bin/bash /opt/backup/backup.sh >> /var/log/rclone_backup.log 2>&1

5. İleri Düzey İpuçları ve En İyi Uygulamalar

Disk Alanı ve Saklama Politikası (Retention Policy)

Bulut depolama alanınız sonsuz değildir. Sürekli dosya göndermek bir süre sonra kotanızı dolduracaktır. Rclone, --max-age parametresiyle belirli bir süreden eski dosyaların buluttan silinmesini sağlayabilir. Ancak bunu manuel yapmak yerine bulut sağlayıcısının kendi yaşam döngüsü (lifecycle) kurallarını kullanmak daha güvenlidir (Örn: AWS S3 üzerindeki nesnelerin 30 gün sonra silinmesi).

rclone sync ve rclone copy Farkı

  • copy: Yerel dizindeki yeni veya değiştirilmiş dosyaları buluta kopyalar. Buluttan hiçbir şey silmez.
  • sync: Yerel dizini bulut ile birebir eşitler. Yerel dizinde silinen bir dosya buluttan da silinir. Yedekleme senaryolarında yanlışlıkla silinen verilerin buluttan da uçmasını istemiyorsanız copy komutunu tercih etmeniz kritik önem taşır.

Log Takibi ve Hata Yönetimi

Rclone işlemlerinin başarısını izlemek için log parametrelerini kullanabilirsiniz:

rclone copy /local/data gdrive-encrypted:data --log-file=/var/log/rclone.log --log-LEVEL INFO

Oluşturduğunuz log dosyalarını düzenli olarak incelemek veya hata durumunda size bildirim gönderecek bir sistem (Prometheus/Grafana veya basit bir mail gönderim betiği) entegre etmek olası veri kayıplarının önüne geçecektir.


Sonuç

Rclone, esnek yapısı, güçlü şifreleme özellikleri ve zengin protokol desteği ile Linux ekosistemindeki en güçlü veri transfer araçlarından biridir. Doğru yapılandırılmış bir şifreli remote ve otomasyon betiği sayesinde, sunucunuzdaki verileri güvenle buluta emanet edebilir, felaket senaryolarına karşı hazırlıklı olabilirsiniz.


Bu yazı Gemini ile otomatik oluşturulmuştur.