Bir gece WordPress eklentinizi güncelledikten sonra sitenizin ölümcül beyaz ekran hatasıyla karşılaştığını hayal edin. Ya da daha kötüsü: bir hacker tüm dosyalarınızı şifreleyip fidye istiyor. Bu anlarda sizi kurtarabilecek tek şey sağlıklı ve geri yüklenebilir bir site yedeklemesidir. Peki, üç ay öncesinden kalma eski bir zip dosyasına sahip olmak yeterli mi? Kesinlikle hayır. Bu makalede, endüstri standardı 3-2-1 stratejisini pratik bir şekilde ve gerçek komutlarla inceleyerek siteniz için profesyonel bir yedekleme sistemi kurabileceksiniz.
3-2-1 Kuralı: Bu Yedekleme Stratejisi Neden Gerekli?
3-2-1 kuralı, dünya çapında BT uzmanları tarafından önerilen basit ama güçlü bir çerçevedir. Bu kural şunları söyler:
- 3 kopya veriniz olsun (bir ana kopya ve iki yedek kopya).
- 2 farklı medya türü (örneğin yerel sabit disk ve bulut depolama).
- 1 kopya site dışında (off-site) saklansın.
Bu kural neden önemlidir? Yalnızca ana sunucuda bir yedek kopyanız varsa, disk arızası veya fidye yazılımı saldırısı durumunda her şeyi kaybedersiniz. Bu kurala uyarak verilerin tamamen kaybolma olasılığı büyük ölçüde azalır. Şimdi her bir bileşeni pratik örneklerle uygulayalım.
Eksiksiz Bir Site Yedeklemesinin Temel Bileşenleri
Bir site yedeklemesi genellikle iki ana bölümden oluşur: dosyalar ve veritabanı. WordPress gibi dinamik siteler için her iki bölüm de hayati öneme sahiptir.
Dosyaların Yedeklenmesi
Site dosyaları PHP kodları, görseller, CSS ve JavaScript dosyaları ile kullanıcılar tarafından yüklenen içerikleri içerir. Linux'ta dosyaları yedeklemek için tar komutunu kullanırız:
tar -czf yedek-dosyalar-$(date +%Y%m%d).tar.gz /var/www/html/
Bu komut, tarihi içeren bir sıkıştırılmış dosya oluşturur. Örneğin çıktı yedek-dosyalar-20250315.tar.gz olacaktır. /var/www/html/ yolunu sitenizin doğru diziniyle değiştirdiğinizden emin olun.
Veritabanının Yedeklenmesi
MySQL veya MariaDB veritabanı, yazılar, ayarlar ve kullanıcı bilgileri gibi sitenizin ana içeriğini barındırır. mysqldump komutunu kullanın:
mysqldump -u kullanici_adi -p veritabani_adi > yedek-vt-$(date +%Y%m%d).sql
Çalıştırdıktan sonra veritabanı şifresini girin. Aynı anda sıkıştırmak için çıktıyı doğrudan gzip'e yönlendirebilirsiniz:
mysqldump -u kullanici_adi -p veritabani_adi | gzip > yedek-vt-$(date +%Y%m%d).sql.gz
Önemli not: Veritabanınız büyükse (1 GB'den fazla), tabloların kilitlenmesini önlemek için --single-transaction seçeneğini kullanın.
3-2-1 Kuralının Pratik Uygulaması
Artık temel araçları bildiğimize göre, eksiksiz bir strateji uygulayalım.
Birinci Kopya: Sunucuda Yerel Yedek
İlk yedek kopyayı ana sunucuda saklayın. Bu, küçük arızalarda en hızlı kurtarma yoludur. Özel bir dizin oluşturun:
mkdir -p /yedek/yerel
chmod 700 /yedek/yerel
Ardından günlük yedekleme için basit bir betik oluşturun. Aşağıdaki içerikle /usr/local/bin/yedek-yerel.sh dosyasını oluşturun:
#!/bin/bash
YEDEK_DIZINI="/yedek/yerel"
TARIH=$(date +%Y%m%d)
tar -czf $YEDEK_DIZINI/dosyalar-$TARIH.tar.gz /var/www/html/
mysqldump -u root -pSIFRE veritabani_adi | gzip > $YEDEK_DIZINI/vt-$TARIH.sql.gz
find $YEDEK_DIZINI -type f -mtime +7 -delete
Son satır, disk alanının dolmasını önlemek için 7 günden eski dosyaları siler. Betiği çalıştırılabilir yapın:
chmod +x /usr/local/bin/yedek-yerel.sh
Ve cron ile çalıştırın:
0 2 * * * /usr/local/bin/yedek-yerel.sh
İkinci Kopya: Farklı Medyada Yedek (Bulut Depolama)
İkinci kopya farklı bir medyada saklanmalıdır. En iyi seçenek AWS S3, Google Cloud Storage veya yerel hizmetler gibi bulut depolama hizmetlerini kullanmaktır. rclone kullanarak yedekleri kolayca buluta aktarabilirsiniz. Önce rclone'u kurun ve yapılandırın:
rclone config
Ardından otomatik yükleme için yeni bir betik oluşturun:
#!/bin/bash
rclone copy /yedek/yerel uzak:yedek-site/ --progress
find /yedek/yerel -type f -mtime +30 -delete
Bu betik yerel dosyaları buluta kopyalar ve 30 günden eski dosyaları siler. Cron ile çalıştırın:
0 3 * * * /usr/local/bin/yedek-bulut.sh
Üçüncü Kopya: Site Dışı Yedek (Off-site)
Üçüncü kopya, ana sunucudan tamamen ayrı bir yerde saklanmalıdır. Bu, farklı bir veri merkezindeki başka bir sunucu veya periyodik olarak başka bir yere taşınan harici bir sabit disk olabilir. Basitlik için başka bir sunucuda FTP veya SFTP hizmeti kullanabilirsiniz:
#!/bin/bash
SUNUCU="yedek.example.com"
KULLANICI="ftpuser"
SIFRE="sifre"
lftp -u $KULLANICI,$SIFRE $SUNUCU <
Bu betik, lftp kullanarak dosyaları başka bir sunucuya aktarır. Güçlü bir şifre kullandığınızdan ve FTP yerine SFTP protokolünü tercih ettiğinizden emin olun.
Kurtarma Testi: Site Yedeklemesinin En Önemli Kısmı
Birçok kişi yedek alır ancak asla test etmez. Bir yedeği tamamen geri yüklemeden ona güvenemezsiniz. Yaygın bir hata, yedek dosyasının bozuk veya veritabanının eksik olmasıdır. Kurtarma testi için:
- Bir test sunucusu veya ayrı bir dizin oluşturun.
- Yedek dosyalarını çıkarın:
tar -xzf yedek-dosyalar-20250315.tar.gz -C /tmp/test-geri-yukle/ - Veritabanını içe aktarın:
mysql -u testkullanici -p testvt < yedek-vt-20250315.sql - Siteyi tarayıcıda açın ve her şeyin çalıştığından emin olun.
Yaygın hata: Yapılandırma dosyalarındaki yolları unutmak. Geri yüklemeden sonra PHP dosyalarındaki mutlak yollar değişmiş olabilir. WordPress'te wp-config.php dosyasını veya benzer dosyaları mutlaka kontrol edin.
Yedekleme Otomasyonu ve İzleme
Yedeklerin düzenli olarak çalıştığından emin olmak için izleme araçları kullanın. Basit bir yol, günlükleri e-postaya göndermektir:
0 2 * * * /usr/local/bin/yedek-yerel.sh && echo "Yedekleme başarılı" | mail -s "Yedekleme Raporu" admin@example.com
Ayrıca, yedekleme çalışmadığında uyarı almak için healthchecks.io veya benzer hizmetleri kullanabilirsiniz.
Site Yedeklemesi İçin Güvenlik İpuçları
- Yedek dosyalarını şifreyle koruyun:
gpg -c yedek-dosya.tar.gz - Aktarım için şifreli protokoller (SFTP, SCP) kullanın.
- Yedek dizinine erişimi sınırlayın:
chmod 700 /yedek - Depolama alanını kontrol etmek için eski yedekleri otomatik olarak silin.
Özet
3-2-1 kuralı ile profesyonel bir site yedekleme stratejisi, her türlü felakete karşı dirençli olmanızı sağlar. Üç kopya, iki farklı medya türü ve bir site dışı kopya, düzenli kurtarma testleriyle birlikte sizi büyük baş ağrılarından kurtarır. Bu makalede sunulan betiklerle bir saatten kısa sürede otomatik bir yedekleme sistemi kurabilirsiniz. Unutmayın: test edilmemiş bir yedek, yedek değildir. ServerNet, web hosting hizmeti sağlayıcısı olarak düzenli yedeklemenin önemini her zaman vurgular ve kullanıcılarına bu işlem için gerekli araçları sunar.
Yorumlar 0
Henüz yorum yok — ilk siz olun!