Drupal Web Sitesi İçin Veri Yedekleme Otomasyonu

Bir web sitesinin güvenliği ve sürdürülebilirliği, yalnızca güçlü bir altyapı ya da etkili bir kullanıcı deneyimiyle değil, aynı zamanda doğru bir veri yedekleme ve kurtarma sistemiyle sağlanır. Drupal, yüksek düzeyde özelleştirilebilir yapısı sayesinde veri yedekleme süreçlerinin otomatikleştirilmesine ve çeşitli senaryolara uygun hale getirilmesine olanak tanır. Yedekleme işlemleri; site dosyaları, veritabanı ve yapılandırma ayarlarını kapsayarak olası veri kayıplarının önüne geçmeyi amaçlar.
Bu yazıda, Drupal CMS ile çalışan web sitelerinde veri yedekleme sürecinin teknik ayrıntılarını, otomasyon yöntemlerini, yedekleme araçlarını, zamanlama ayarlarını, bulut entegrasyonlarını ve güvenli geri yükleme (restore) stratejilerini ayrıntılı bir şekilde inceleyeceğiz.

Neden Yedekleme?
Web siteleri çeşitli sebeplerle veri kaybı riskiyle karşı karşıya kalabilir:
-
Sunucu çökmesi
-
Yazılım güncelleme hataları
-
Kötü niyetli saldırılar (malware, ransomware)
-
Kullanıcı hataları (yanlış içerik silme)
-
Hatalı konfigürasyon değişiklikleri
Drupal projelerinde bu tür sorunlara karşı alınabilecek en etkili önlem, düzenli ve güvenli yedekleme sistemidir. Ancak bu sistem manuel yapıldığında sürdürülebilir olmaz. Bu nedenle otomasyon şarttır.
Drupal’da Yedeklenmesi Gereken Temel Bileşenler
-
Veritabanı (
.sqlveya sıkıştırılmış.gz) -
Public ve private dosyalar (
sites/default/files/) -
Kod tabanı (
/modules,/themes,/profiles) -
Site yapılandırma dosyaları (
settings.php,services.yml)
Bu unsurların tamamı yedeklenmediğinde, site geri yüklendiğinde eksik veya hatalı çalışabilir.
Otomatik Yedekleme için Kullanılabilecek Yöntemler
1. Drush ile Otomatik Yedekleme
Drush (Drupal Shell), komut satırı üzerinden Drupal işlemlerini otomatikleştirmek için kullanılır. Cron job’lar ile birlikte zamanlanmış görevler tanımlanarak yedekleme işlemleri yapılabilir.
Bu komutlar her gün çalışacak şekilde cron’a eklenerek tam otomatik hale getirilebilir.
2. Backup and Migrate Modülü
Drupal için özel geliştirilmiş Backup and Migrate modülü, hem veritabanı hem de dosya yedeklemesi yapabilir. Arayüzü sayesinde teknik bilgisi olmayan kullanıcılar da işlem gerçekleştirebilir.
Modül Özellikleri:
-
Yedekleme zamanlaması belirleme
-
Dropbox, Amazon S3, FTP’ye dışa aktarma
-
Veritabanı, dosyalar, kod yapısı yedeği
-
Şifrelenmiş yedekler oluşturma
3. Acquia Cloud, Pantheon, Platform.sh gibi Drupal hosting çözümleri
Bu platformlar, yerleşik yedekleme sistemleri sunar:
-
Günlük tam yedekleme
-
30 güne kadar yedek saklama
-
Tek tıkla geri yükleme
-
Sürüm karşılaştırması
Kurumsal projeler için bu sistemler önerilir.
Yedekleme Planı Oluşturmak
Yedekleme yalnızca teknik bir görev değil, aynı zamanda bir stratejidir. Her site için özel bir yedekleme planı hazırlanmalıdır.
Haftalık Plan Örneği:
| Gün | İşlem |
|---|---|
| Pazartesi | Veritabanı yedeği (gzip formatında) |
| Çarşamba | Public dosyaların yedeği |
| Cuma | Kod tabanı ve yapılandırma yedeği |
| Her Gün | Değişiklik günlüğü dosyasına log yazılması |
Yedekleme Dosyalarının Saklanması
Yedeklenen veriler site dizininde bırakılmamalıdır. Güvenlik açığı oluşturur ve disk alanı tüketir.
Alternatif Yedekleme Depolama Alanları:
-
Amazon S3
-
Google Drive / Dropbox
-
Harici FTP veya SFTP sunucuları
-
Yerel NAS sunucuları
-
Şifrelenmiş USB sürücüler
Drupal’da bu servislere entegrasyon yapılabilmesi için özel betikler ya da destekleyici modüller (ör. S3 File System) kullanılabilir.
Güvenlik Odaklı Yedekleme Uygulamaları
-
Şifreli Yedekleme Dosyaları
-
AES-256 bit şifreleme algoritması
-
gpgveyaopensslile komut satırından yedekleme şifreleme
-
-
Yedek Dosyalarının Erişim Yetkisi
-
chmod ile yalnızca root kullanıcının okuma/yazma hakkı
-
Apache/Nginx üzerinden dışarıdan erişimin engellenmesi
-
-
Yedekleme Geri Dönüş Testleri
-
Geri yükleme işlemi düzenli olarak test edilmeli
-
Test ortamlarında (staging) yapılmalı
-
Drupal Yedekleme ve Cron Entegrasyonu
Drupal’ın kendi cron sistemi, planlı görevlerin otomatik olarak çalışmasını sağlar. Yedekleme betikleri bu cron süreçlerine entegre edilebilir.
Örnek Drupal Cron’a Yedekleme Scripti Ekleme:
Bu işlem sayesinde site her cron çalıştırıldığında kendini yedekler.
Gelişmiş Yedekleme Senaryoları
1. Çoklu Site (Multisite) Drupal Yapılarında Yedekleme
-
Her site için ayrı veritabanı ve dosya dizini
-
Ortak modül ve tema dizinleri
-
Her multisite için bireysel cron ve yedekleme tanımı
2. Headless Drupal Projelerinde
-
API endpoint yedekleri
-
Harici frontend sistemleriyle senkronize yedekleme
-
JSON/GraphQL veri setlerinin düzenli dışa aktarımı
3. CI/CD Entegrasyonunda Otomatik Yedekleme
-
Git üzerinden yapılan her deploy öncesi tam site snapshot
-
Jenkins, GitHub Actions gibi sistemlerle otomasyon
Drupal’da Geri Yükleme (Restore) Süreci
Bir site çökmesi, hacklenme veya kullanıcı hatası sonrası geri yükleme işlemi titizlikle yapılmalıdır.
Geri Yükleme Adımları:
-
Veritabanının boşaltılması
-
Yedek veritabanının yüklenmesi (
drush sql-cli < backup.sql) -
Dosya sisteminin eski haline getirilmesi (FTP/SFTP ile)
-
settings.phpyapılandırmasının kontrol edilmesi -
Uygulama önbelleklerinin temizlenmesi (
drush cr)
Yedekleme Süreci ile İlgili Yaygın Hatalar
-
Yalnızca veritabanını yedekleyip dosyaları unutmak
-
Site dosyalarıyla birlikte yedek dosyasını da aynı klasöre koymak
-
Yedekleri şifresiz bırakmak
-
Geri yükleme testlerini yapmamak
-
Otomatik yedekleme zamanlaması yapmadan elle çalıştırmak
Sonuç
Drupal web siteleri için güvenli, sürdürülebilir ve otomatik bir yedekleme sistemi kurmak, sitenin geleceğini garanti altına alır. Backup and Migrate modülü gibi kullanıcı dostu çözümlerden, Drush ile cron destekli komut satırı otomasyonlarına kadar birçok yöntem Drupal altyapısıyla uyumlu olarak çalışır. Ancak asıl önemli olan, bu yedekleme sistemini bir kez kurmak değil, onu periyodik, belgelenmiş ve test edilmiş bir sürece dönüştürmektir. Unutmayın: yedeğiniz yoksa hiçbir şeyiniz yoktur.

