Web sitesi yedekleme, çoğu site sahibinin başına bir felaket gelene kadar erteleyip durduğu iştir. Oysa diskler arızalanır, eklentiler güncellemede çöker, siteler saldırıya uğrar ve bazen tek bir yanlış komut yılların emeğini silebilir. İyi haber şu: Sağlam bir yedekleme stratejisi kurmak ne pahalıdır ne de karmaşık. Bu rehberde sektörün altın standardı kabul edilen 3-2-1 kuralını ve yedeklerinizi tamamen otomatikleştirmenin yollarını adım adım anlatacağız.
3-2-1 Kuralı Nedir?
3-2-1 kuralı, verinizin her koşulda kurtarılabilir kalması için üç basit şart koyar:
- 3 kopya: Verinizin biri canlı (sunucudaki site), ikisi yedek olmak üzere en az üç kopyası bulunmalı.
- 2 farklı ortam: Yedekler en az iki farklı depolama ortamında tutulmalı (örneğin sunucu diski + bulut depolama).
- 1 kopya site dışında (offsite): En az bir yedek, canlı sunucudan fiziksel ve mantıksal olarak ayrı bir yerde durmalı.
Neleri Yedeklemelisiniz?
Tipik bir dinamik web sitesinde iki bileşen vardır ve ikisi de yedeklenmelidir:
Sıklık konusunda pratik bir kural: Veriniz ne kadar sık değişiyorsa o kadar sık yedekleyin. Günde birkaç yazı yayımlanan bir blog için günlük veritabanı + haftalık dosya yedeği yeterliyken, e-ticaret sitesinde veritabanı yedeğini birkaç saatte bire kadar sıklaştırmak gerekir.
Adım 1: Veritabanı Yedeği Alın
MySQL/MariaDB kullanan bir site için temel komut mysqldump'tır:
mysqldump -u kullanici_adi -p veritabani_adi > /var/yedekler/db-yedek.sql
Yedeği sıkıştırarak yer kazanabilir ve dosya adına tarih ekleyerek sürümleri ayırabilirsiniz:
mysqldump -u kullanici_adi -p'parola' veritabani_adi | gzip > /var/yedekler/db-$(date +%F).sql.gz
WordPress kullanıyor ve WP-CLI kuruluysa wp db export komutu da aynı işi görür; bağlantı bilgilerini wp-config.php dosyasından kendisi okur.
Adım 2: Dosya Yedeği Alın
Site dizininin tamamını tarihli bir arşive dönüştürün:
tar -czf /var/yedekler/dosyalar-$(date +%F).tar.gz -C /var/www alanadi.com
-C parametresi, arşivin içine tam sunucu yolunu değil yalnızca site klasörünü koyar; geri yüklerken işinizi kolaylaştırır.
Adım 3: cron ile Otomatikleştirin
Elle alınan yedek, unutulan yedektir. İki komutu bir betikte birleştirin (örneğin /usr/local/bin/site-yedek.sh):
#!/bin/bash
set -e
TARIH=$(date +%F)
HEDEF=/var/yedekler
mysqldump -u kullanici_adi -p'parola' veritabani_adi | gzip > "$HEDEF/db-$TARIH.sql.gz"
tar -czf "$HEDEF/dosyalar-$TARIH.tar.gz" -C /var/www alanadi.com
# 14 günden eski yerel yedekleri temizle
find "$HEDEF" -name "*.gz" -mtime +14 -delete
Betiği çalıştırılabilir yapın (chmod +x /usr/local/bin/site-yedek.sh) ve crontab -e ile her gece 03:00'te çalışacak şekilde zamanlayın:
0 3 * * * /usr/local/bin/site-yedek.sh >> /var/log/site-yedek.log 2>&1
Çıktıyı bir log dosyasına yönlendirmek, bir gece sessizce başarısız olan yedeği fark etmenizi sağlar. Betiğin başındaki set -e satırı sayesinde herhangi bir komut hata verirse betik o noktada durur; böylece bozuk bir veritabanı yedeğinin üzerine sağlammış gibi devam edilmez. Daha da iyisi, betiğin sonuna basit bir bildirim eklemektir: Yedek başarıyla tamamlandığında dosya boyutunu log'a yazdırın ve haftada bir log dosyasına göz atmayı alışkanlık edinin. Sıfır baytlık bir yedek dosyası, en sık karşılaşılan sessiz arıza belirtisidir.
Adım 4: Yedekleri Site Dışına Taşıyın
3-2-1'in en kritik parçası budur. İki yaygın araç:
rsync ile başka bir sunucuya senkronlamak:
rsync -avz /var/yedekler/ yedekkullanici@yedek-sunucu:/yedekler/site1/
rclone ile bulut depolamaya (S3 uyumlu depolama, Google Drive vb.) kopyalamak:
rclone copy /var/yedekler uzak:site-yedekleri/site1
Bu komutlardan birini yedek betiğinizin sonuna ekleyin; böylece her gece alınan yedek otomatik olarak site dışına da çıkar. Uzak kopya için yalnızca yazma yetkili bir hesap kullanmak, sunucunuz ele geçirilse bile saldırganın eski yedekleri silememesini sağlar.
Kod Yazmak İstemeyenler İçin Alternatifler
Komut satırı size uzaksa aynı strateji hazır araçlarla da kurulabilir. WordPress tarafında UpdraftPlus gibi yaygın yedekleme eklentileri; zamanlanmış yedek alma, yedekleri bulut depolamaya gönderme ve panelden tek tıkla geri yükleme özellikleri sunar. Hosting panellerinin (cPanel, Plesk) yerleşik yedekleme araçları da dosya ve veritabanını birlikte arşivleyebilir. Hangi aracı seçerseniz seçin ölçüt aynıdır: Yedek otomatik alınmalı, en az bir kopya site dışına çıkmalı ve geri yükleme denenmiş olmalı.
Bir de güvenlik boyutu var: Yedek dosyaları sitenizin tüm verisini içerir; veritabanı yedeğinde kullanıcı bilgileri ve parola özetleri bulunur. Yedekleri asla web kök dizini altında (herkesin indirebileceği bir adreste) tutmayın, uzak kopyaları erişimi kısıtlı bir alanda saklayın ve mümkünse arşivleri şifreleyin.
Saklama Süresi ve Geri Yükleme Testleri
Her yedeği sonsuza dek saklamak gerekmez; kademeli bir saklama düzeni hem güvenli hem ekonomiktir:
Ve en çok atlanan adım: Geri yükleme testi yapın. Test edilmemiş yedek, yok hükmündedir. Ayda bir kez yedeği yerel makinenize veya geçici bir sunucuya kurun; veritabanını içe aktarın, dosyaları açın ve sitenin gerçekten ayağa kalktığını gözlerinizle görün. Bozuk çıkan bir arşivi felaket gününde değil, sakin bir test gününde keşfetmek istersiniz.
Özet: Üç kopya, iki ortam, bir offsite. Yedeği otomatikleştir, eskiyenleri buda, ayda bir geri yükleme dene. Bu kadar basit bir rutin, web sitenizi geri dönüşü olmayan veri kaybından korur.
Yorumlar (0)
Henüz yorum yapılmamış. İlk yorumu siz yapın!
Yorum Yazın