Veri kaybı her sistemin karşılaşabileceği bir risktir. Donanım arızası, kullanıcı hatası, siber saldırı veya doğal afet - sebep ne olursa olsun, düzenli yedekleme hayat kurtarır. Linux'ta yedekleme için güçlü araçlar mevcuttur. Bu rehberde rsync, tar ve diğer yedekleme yöntemlerini ele alacağız.
Yedekleme Temelleri
3-2-1 Kuralı
Endüstri standardı yedekleme stratejisi:
3: Verinin 3 kopyası olsun 2: 2 farklı ortamda saklayın 1: 1 kopya uzak konumda bulunsun
Örnek: Ana sunucu + yerel harici disk + bulut depolama.
Yedekleme Türleri
Tam yedekleme (Full): Her şeyin kopyası. En güvenli ama en yavaş ve en çok yer kaplar.
Artımlı yedekleme (Incremental): Son yedeklemeden beri değişenler. Hızlı ve az yer kaplar. Geri yükleme için tüm artımlı yedekler gerekir.
Farksal yedekleme (Differential): Son tam yedeklemeden beri değişenler. Artımlıdan biraz büyük ama geri yükleme daha kolay.
tar ile Yedekleme
tar (tape archive), dosyaları tek bir arşiv dosyasında birleştiren geleneksel Unix aracıdır. Basit ve evrensel uyumluluk sağlar.
Temel Kullanım
Arşiv oluşturma:
tar -cvf backup.tar /home/kullanici
-c: Create (oluştur) -v: Verbose (detaylı çıktı) -f: Dosya adı
Sıkıştırmalı arşiv (gzip):
tar -cvzf backup.tar.gz /home/kullanici
-z: gzip sıkıştırma
Daha güçlü sıkıştırma (bzip2):
tar -cvjf backup.tar.bz2 /home/kullanici
-j: bzip2 sıkıştırma (yavaş ama daha küçük)
xz sıkıştırma (en güçlü):
tar -cvJf backup.tar.xz /home/kullanici
-J: xz sıkıştırma
Arşivden Çıkarma
tar -xvf backup.tar tar -xvzf backup.tar.gz -C /hedef/dizin
-x: Extract (çıkar) -C: Hedef dizin
Arşiv İçeriğini Listeleme
tar -tvf backup.tar.gz
Sistem Yedeği Örneği
tar -cvpzf /backup/sistem_$(date +%Y%m%d).tar.gz \ --exclude=/proc \ --exclude=/sys \ --exclude=/dev \ --exclude=/run \ --exclude=/tmp \ --exclude=/mnt \ --exclude=/media \ --exclude=/backup \ /
-p: İzinleri koru --exclude: Hariç tutulacak dizinler
rsync ile Yedekleme
rsync, dosya senkronizasyonu için güçlü bir araçtır. Sadece değişen dosyaları aktarır, bu sayede hızlı ve verimlidir. Ağ üzerinden yedekleme için idealdir.
Temel Kullanım
Yerel senkronizasyon:
rsync -av /kaynak/ /hedef/
-a: Archive modu (izinler, sahiplik, sembolik linkler korunur) -v: Verbose
Dikkat: Kaynak sonundaki / önemlidir. /kaynak/ → klasör içeriğini aktarır /kaynak → klasörün kendisini aktarır
Gelişmiş Seçenekler
rsync -avz --progress --delete /kaynak/ /hedef/
-z: Sıkıştırarak aktar (ağ trafiğini azaltır) --progress: İlerleme göster --delete: Kaynakta olmayan dosyaları hedeften sil
Uzak Sunucuya Yedekleme
SSH üzerinden:
rsync -avz -e ssh /home/kullanici/ kullanici@sunucu:/backup/
SSH portu farklıysa:
rsync -avz -e "ssh -p 2222" /kaynak/ kullanici@sunucu:/hedef/
Uzak Sunucudan Çekme
rsync -avz kullanici@sunucu:/backup/ /yerel/
Kuru Çalıştırma (Dry Run)
Ne yapacağını görmek için:
rsync -avzn /kaynak/ /hedef/
-n veya --dry-run: Değişiklik yapmadan simüle et
Exclude Patterns
rsync -av --exclude='*.log' --exclude='cache/' /kaynak/ /hedef/
Exclude dosyasından:
rsync -av --exclude-from='exclude.txt' /kaynak/ /hedef/
Bant Genişliği Sınırlama
rsync -avz --bwlimit=1000 /kaynak/ hedef/
--bwlimit: KB/s cinsinden limit
rsync vs tar
rsync avantajları:
- Artımlı aktarım (sadece değişenler)
- Ağ yedeklemesi için optimize
- Kesilen aktarıma devam edebilir
tar avantajları:
- Tek dosyada arşiv
- Evrensel uyumluluk
- Uzun vadeli saklama için daha uygun
Önerilen yaklaşım: Günlük yedekler için rsync, aylık arşivler için tar.
Otomatik Yedekleme
Cron ile Zamanlama
Günlük yedekleme scripti oluşturun:
#!/bin/bash TARIH=$(date +%Y%m%d) KAYNAK="/home" HEDEF="/backup"
rsync -avz --delete $KAYNAK/ $HEDEF/gunluk/
# Haftalık tam yedek (Pazar günü) if [ $(date +%u) -eq 7 ]; then tar -cvzf $HEDEF/haftalik/backup_$TARIH.tar.gz $KAYNAK fi
Cron'a ekleyin:
crontab -e
Her gece 02:00'de çalıştır:
0 2 * /home/scripts/yedekle.sh >> /var/log/backup.log 2>&1
Yedek Rotasyonu
Eski yedekleri temizleme:
# 30 günden eski tar dosyalarını sil find /backup/haftalik -name "*.tar.gz" -mtime +30 -delete
Uzak Yedekleme Çözümleri
SSH Key Tabanlı Erişim
Parola sormadan yedekleme için SSH anahtarı kullanın:
ssh-keygen -t ed25519 ssh-copy-id kullanici@backup-sunucu
Artık rsync parola sormadan çalışır.
rclone ile Bulut Yedekleme
rclone, bulut depolama servisleriyle çalışır: Google Drive, S3, Backblaze, Dropbox ve onlarca servis desteklenir.
Kurulum:
sudo apt install rclone rclone config
S3'e yedekleme:
rclone sync /backup remote:bucket-name/backup/
BorgBackup
Deduplikasyon ve şifreleme destekli modern yedekleme aracı.
Kurulum:
sudo apt install borgbackup
Repo oluştur:
borg init --encryption=repokey /backup/borg-repo
Yedek al:
borg create /backup/borg-repo::backup-{now} /home
Eski yedekleri temizle:
borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=6 /backup/borg-repo
restic
BorgBackup alternatifi, bulut desteği dahili.
Kurulum:
sudo apt install restic
S3'e yedekleme:
export AWS_ACCESS_KEY_ID=xxx export AWS_SECRET_ACCESS_KEY=xxx restic -r s3:s3.amazonaws.com/bucket init restic -r s3:s3.amazonaws.com/bucket backup /home
Timeshift
Masaüstü Linux için sistem geri yükleme aracı. Windows System Restore benzeri.
sudo apt install timeshift
GUI ile anlık görüntü alır, sistem sorunlarında geri dönüş sağlar.
Yedek Doğrulama
Test Geri Yükleme
Yedeklerin çalıştığından emin olmak için düzenli test yapın:
# tar arşivi test tar -tvf backup.tar.gz
# rsync dry-run rsync -avzn /backup/ /test-restore/
Kontrol Toplamı
Veri bütünlüğü için:
sha256sum backup.tar.gz > backup.tar.gz.sha256 sha256sum -c backup.tar.gz.sha256
Veritabanı Yedekleme
MySQL/MariaDB
mysqldump -u root -p --all-databases > db_backup.sql
Sıkıştırılmış:
mysqldump -u root -p --all-databases | gzip > db_backup.sql.gz
PostgreSQL
pg_dumpall -U postgres > pg_backup.sql
Belirli veritabanı:
pg_dump -U postgres dbname > dbname.sql
Docker Volume Yedekleme
docker run --rm -v volume_name:/data -v /backup:/backup alpine \ tar cvf /backup/volume_backup.tar /data
Pratik Yedekleme Planı
Günlük: rsync ile artımlı yedek (yerel + uzak) Haftalık: tar ile tam yedek arşivi Aylık: Uzak sunucu veya buluta tam yedek Yıllık: Kalıcı arşiv (harici disk, soğuk depolama)
Sonuç
Yedekleme yapılmayan veri, kaybedilmeye hazır veridir. rsync günlük senkronizasyon için, tar arşivleme için idealdir. Modern araçlar (BorgBackup, restic) deduplikasyon ve şifreleme ile disk alanı ve güvenlik sağlar.
3-2-1 kuralını uygulayın. Yedekleri düzenli test edin. Otomasyonu cron ile sağlayın. Test edilmemiş yedek, yedek sayılmaz.
Felaket anında değil, bugün yedekleme planınızı yapın.
0 Yorum
Yorum Yaz