Linux Sunucu Yedekleme Neden Önemlidir?
Linux sunucularda veri kaybı çoğu zaman beklenmedik anlarda gerçekleşir. Bir disk arızası, yanlış bir komut veya sistem hatası tüm verilerin kaybolmasına neden olabilir.
Örneğin aşağıdaki durumlar veri kaybına yol açabilir:
- disk arızaları
- yanlışlıkla silinen dosyalar
- sistem güncelleme hataları
- kötü amaçlı saldırılar
- yanlış kullanılan rm -rf komutu
Bu nedenle sistem yöneticileri için düzenli ve otomatik sunucu yedekleme sistemi kurmak kritik bir güvenlik önlemidir.
Bu rehberde Linux sunucular için iki seviyeli bir yedekleme stratejisi inceleyeceğiz:
- rsync ile dosya bazlı yedekleme
- dd ile tam disk imajı alma
- veritabanı yedekleme
- cron ile otomatik backup sistemi
Linux'ta Dosya Bazlı Yedekleme (Rsync)
Linux sistemlerde en çok kullanılan backup araçlarından biri rsync komutudur.
rsync, sadece değişen dosyaları kopyalayan incremental backup yöntemini kullanır. Bu sayede hem disk alanından hem de zamandan tasarruf edilir.
Rsync ile Yedekleme Komutu
sudo rsync -avzP /home/enable/ /mnt/iscsi_disk/backups/enable_yedek/
Bu komut aşağıdaki işlemleri yapar:
- /home/enable dizinini yedekler
- verileri iSCSI diskine kopyalar
- sadece değişen dosyaları günceller
Rsync Parametreleri
| Parametre | Açıklama |
| a | arşiv modu (izinler ve sahiplik korunur) |
| v | detaylı çıktı |
| z | veri sıkıştırma |
| p | ilerleme göstergesi |
Rsync özellikle aşağıdaki verileri yedeklemek için idealdir:
- web site dosyaları
- uygulama klasörleri
- yapılandırma dosyaları
- veritabanı dump dosyaları
Linux'ta Tam Disk İmajı Alma (DD Komutu)
Bazı durumlarda sadece dosyaları değil, sunucunun tamamını yedeklemek gerekebilir.
Bunun için Linux'ta kullanılan en güçlü araçlardan biri dd komutudur.
dd komutu diskteki tüm veriyi bit seviyesinde kopyalayarak tam bir disk imajı oluşturur.
DD ile Disk Clone Alma
sudo dd if=/dev/sda of=/mnt/iscsi_disk/sunucu_imaj_$(date +%Y%m%d).img bs=64K conv=noerror,sync
Komut Açıklaması
| Parametre | Açıklama |
| if | input file (kaynak disk) |
| of | output file (yedek dosyası) |
| bs | blok boyutu |
| conv=noerror | hata olsa bile devam eder |
| sync | veri senkronizasyonu sağlar |
Bu komut:
- ana disk /dev/sda üzerindeki tüm verileri okur
- bir .img disk imajı oluşturur
- yedekleme diskine kaydeder
Önemli Not:
dd işlemi disk yoğunluğunu artırabilir. Bu nedenle genellikle sunucunun en az yoğun olduğu saatlerde çalıştırılması önerilir.
Linux'ta Veritabanı Yedekleme (MySQL Dump)
Dosya yedeklemesi tek başına yeterli değildir. Sunucuda çalışan veritabanlarının da düzenli olarak yedeklenmesi gerekir.
MySQL veya MariaDB veritabanlarını yedeklemek için mysqldump komutu kullanılır.
mysqldump -u root -p --all-databases > /home/enable/backup/all_db.sql
Bu komut:
- tüm veritabanlarını export eder
- SQL dump dosyası oluşturur
Bu dump dosyası daha sonra başka bir sunucuya kolayca restore edilebilir.
Linux'ta Otomatik Yedekleme (Cron Kullanımı)
Manuel yedekleme yapmak yerine bu işlemi otomatik hale getirmek en doğru yöntemdir.
Linux'ta zamanlanmış görevler için cron kullanılır.
Yedekleme Scripti Oluşturma
Öncelikle tüm yedekleme komutlarını tek bir bash script içinde toplamak gerekir.
nano /home/enable/backup_script.sh
Script içeriği:
- #!/bin/bash
- DATE=$(date +%Y-%m-%d)
# Veritabanı Yedeği
- mysqldump -u root -p'SIFRENIZ' --all-databases > /home/enable/backup/db_backup_$DATE.sql
# Dosya Yedeği
- rsync -avz /home/enable/ /mnt/iscsi_disk/backups/enable_yedek/
# Eski Yedekleri Temizleme
- find /mnt/iscsi_disk/backups/ -type f -mtime +30 -delete
- Script'e çalıştırma izni verilir:
- chmod +x /home/enable/backup_script.sh
Cron ile Otomatik Backup Zamanlama
Cron görevlerini düzenlemek için:
- crontab -e
Dosyanın sonuna şu satır eklenir:
- 0 3 * * * /home/enable/backup_script.sh >> /home/enable/backup/backup.log 2>&1
Cron Görevi Açıklaması
| Bölüm | Anlamı |
| 0 | dakika |
| 3 | saat |
| * | her gün |
| * | her ay |
| * | haftanın her günü |
Bu cron görevi:
- her gece saat 03:00'te çalışır
- backup scriptini çalıştırır
- hataları log dosyasına kaydeder
Linux Backup Stratejisi İçin En İyi Uygulamalar
- Profesyonel bir backup sistemi için şu kurallar önerilir:
- yedekleri farklı bir diskte saklayın
- mümkünse uzak bir sunucuya gönderin
- düzenli olarak restore testi yapın
- eski yedekleri otomatik silin
En güvenli yöntem 3-2-1 backup kuralıdır.
3 kopya veri
2 farklı medya
1 uzak lokasyon
Sık Sorulan Sorular (FAQ)
Linux'ta sunucu yedekleme nasıl yapılır?
Linux'ta sunucu yedeklemek için şu yöntemler kullanılabilir:
- rsync ile dosya bazlı yedekleme
- dd ile disk imajı alma
- mysqldump ile veritabanı backup
- cron ile otomatik yedekleme
Rsync ile incremental backup nedir?
Rsync incremental backup yöntemi kullanır. Bu yöntem sadece değişen dosyaları kopyalar ve böylece disk alanı ile zaman tasarrufu sağlar.
Linux'ta disk clone nasıl alınır?
Disk clone almak için dd komutu kullanılabilir:
sudo dd if=/dev/sda of=disk.img
Bu komut diskin birebir kopyasını oluşturur.
Sonuç
Linux sunucularda veri kaybını önlemek için güçlü bir yedekleme stratejisi kurmak gerekir.
Bu rehberde şu yöntemleri ele aldık:
- rsync ile hızlı dosya yedekleme
- dd ile tam disk imajı alma
- mysqldump ile veritabanı backup
- cron ile otomatik yedekleme
Bu yöntemleri kullanarak Linux sunucularınız için güvenli ve otomatik bir backup sistemi oluşturabilirsiniz.