Sunucu Yedekleme Nasıl Yapılır? Otomatik ve Manuel Yöntemler
Sunucu Yedeği Neden Vazgeçilmezdir?
Veri kaybı, dijital işletmeler için en yıkıcı senaryolardan biridir. Donanım arızası, yanlışlıkla silinen dosyalar, kötü amaçlı yazılım saldırısı veya yazılım güncellemesinden kaynaklanan bozulma; yeterli yedekleme stratejisi olmadan geri dönüşü olmayan kayıplara yol açabilir. Düzenli ve test edilmiş yedekler, bu felaket senaryolarında işinizin sürekliliğini güvence altına alan en önemli güvencedir.
Etkili bir yedekleme stratejisi üç temel ilkeyi kapsar: birden fazla yedek kopyası, farklı fiziksel konumlarda depolama ve düzenli geri yükleme testleri. Yalnızca yerel yedek almak; sunucu fiziksel olarak zarar gördüğünde yedeğin de kaybolması riskini doğurur. Bu nedenle en az bir yedek kopyasının uzak bir konumda (başka sunucu, bulut depolama) saklanması kritik önem taşır.
tar ile Manuel Yedekleme
tar (Tape Archive), Linux sistemlerde dosya ve dizinleri arşivlemek için en yaygın kullanılan araçtır. Basit yapısı ve tüm Linux dağıtımlarında varsayılan olarak bulunması nedeniyle en temel yedekleme yöntemi olarak tercih edilir.
# Belirli bir dizini sıkıştırarak yedekle:
tar -czf /backup/yedek-$(date +%Y%m%d).tar.gz /home/kullaniciadi/
# Birden fazla dizini yedekle:
tar -czf /backup/site-yedek-$(date +%d%m%Y).tar.gz \
/home/kullaniciadi/public_html/ \
/home/kullaniciadi/mail/
# MySQL veritabanını yedekle:
mysqldump -u root -p veritabani_adi > /backup/db-$(date +%Y%m%d).sql
# Yedek dosyasını doğrula (içeriği listele):
tar -tzf /backup/yedek-20260427.tar.gz | head -20
# Yedeği geri yükle:
tar -xzf /backup/yedek-20260427.tar.gz -C /hedef/dizin/
rsync ile Akıllı Yedekleme
rsync, yalnızca değişen dosyaları senkronize ederek çok daha verimli yedekleme yapan güçlü bir araçtır. Büyük veri setlerinde tam yedek almak yerine yalnızca değişiklikleri aktarmak, hem zaman hem de bant genişliği tasarrufu sağlar. rsync ayrıca SSH üzerinden uzak sunucuya yedekleme yapılmasına da imkan tanır.
# Yerel rsync yedekleme:
rsync -avz --delete /home/kullaniciadi/ /backup/kullaniciadi/
# Uzak sunucuya SSH üzerinden yedekleme:
rsync -avz -e ssh /home/kullaniciadi/ \
yedek-kullanici@yedek-sunucu.com:/backup/
# Artımlı yedekleme (sadece değişenleri kopyala):
rsync -avz --backup \
--backup-dir=/backup/$(date +%Y-%m-%d) \
/home/kullaniciadi/ /backup/guncel/
# Açıklama:
# -a : arşiv modu (izinleri, sahipliği korur)
# -v : ayrıntılı çıktı
# -z : sıkıştırarak aktar
# --delete : kaynakta olmayan dosyaları hedeften sil
Otomatik Yedekleme Scripti
Yedeklemeyi cron görevi olarak otomatikleştirmek, insan hatasını ortadan kaldırır ve yedeklerin düzenli alınmasını garanti eder. Aşağıdaki script, eski yedekleri otomatik temizleyerek disk alanını verimli kullanır.
#!/bin/bash
# /root/scripts/yedekle.sh
KAYNAK="/home/kullaniciadi"
HEDEF="/backup"
TARIH=$(date +%d-%m-%Y)
SAKLA=7 # Kaç günlük yedek saklanacak
# Dizin yedekle
tar -czf "$HEDEF/site-$TARIH.tar.gz" "$KAYNAK/public_html/"
# Veritabanı yedekle
mysqldump -u root -pSIFRE veritabani > "$HEDEF/db-$TARIH.sql"
gzip "$HEDEF/db-$TARIH.sql"
# Eski yedekleri temizle
find "$HEDEF" -name "*.tar.gz" -mtime +"$SAKLA" -delete
find "$HEDEF" -name "*.sql.gz" -mtime +"$SAKLA" -delete
echo "Yedekleme tamamlandı: $TARIH"
# Crontab'a eklemek için:
# crontab -e
# 0 2 * * * /bin/bash /root/scripts/yedekle.sh >> /var/log/yedek.log 2>&1
Yedek Doğrulama ve Geri Yükleme Testi
Yedek almak kadar yedekten geri yüklenebilmek de kritik önem taşır. Alınan yedeklerin gerçekten çalışıp çalışmadığını periyodik olarak test etmek, gerçek bir felaket anında yaşanabilecek sürprizleri önler. Ayda en az bir kez test ortamında yedekten geri yükleme yapmanızı şiddetle öneririz.
HostingKontrol VPS ve dedicated sunucu paketleri, otomatik günlük snapshot yedekleme özelliğiyle birlikte gelir. Ayrıca uzak sunucu, Hetzner Storage Box veya Amazon S3 gibi bulut depolama servislerine otomatik yedekleme entegrasyonu için destek ekibimizle iletişime geçebilirsiniz.