Sunucu Yedekleme Stratejileri ve Araçları Rehberi

z

zafer ak

Yazar

30 December 2025 4 dakika okuma 308 görüntülenme
Sunucu Yedekleme Stratejileri ve Araçları Rehberi
Kapsamlı yedekleme stratejileri, rsync, restic, Borg Backup, veritabanı yedekleme, off-site backup ve felaket kurtarma planları.

Veri kaybı işletmeler için yıkıcı sonuçlar doğurabilir. Bu rehberde profesyonel yedekleme stratejilerini ve araçlarını öğreneceksiniz.

Server Backup

3-2-1 Yedekleme Kuralı

  • 3 kopya: Verilerinizin en az 3 kopyası olsun
  • 2 farklı ortam: Farklı depolama ortamlarında
  • 1 off-site: En az bir kopya farklı lokasyonda

Yedekleme Türleri

Tür Açıklama Avantaj Dezavantaj
Full Tüm verilerin kopyası Kolay geri yükleme Zaman ve alan
Incremental Son yedekten farklar Hızlı ve az alan Zincir bağımlılığı
Differential Full'dan farklar Daha kolay geri yükleme Artan boyut

rsync ile Yedekleme

# Temel rsync
rsync -avz /source/ /destination/

# SSH üzerinden
rsync -avz -e ssh /local/path/ user@remote:/backup/

# Incremental backup
rsync -avz --backup --backup-dir=/backup/incremental/$(date +%Y%m%d) /source/ /destination/

# Exclude patterns
rsync -avz --exclude '*.log' --exclude 'cache/' /source/ /destination/

# Delete extraneous files
rsync -avz --delete /source/ /destination/
Data Backup

Restic ile Modern Yedekleme

Restic, deduplikasyon ve şifreleme özellikli modern bir yedekleme aracıdır.

# Kurulum
sudo apt install restic

# Repository oluşturma
restic -r /backup/restic-repo init

# Yedek alma
restic -r /backup/restic-repo backup /home /etc /var/www

# S3 backend ile
export AWS_ACCESS_KEY_ID="key"
export AWS_SECRET_ACCESS_KEY="secret"
restic -r s3:s3.amazonaws.com/bucket-name init
restic -r s3:s3.amazonaws.com/bucket-name backup /data

# Snapshot listesi
restic -r /backup/restic-repo snapshots

# Geri yükleme
restic -r /backup/restic-repo restore latest --target /restore/

# Eski snapshotları temizleme
restic -r /backup/restic-repo forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6
restic -r /backup/restic-repo prune

Borg Backup

Borg, deduplikasyon ve sıkıştırma ile verimli yedekleme sağlar.

# Kurulum
sudo apt install borgbackup

# Repository oluşturma
borg init --encryption=repokey /backup/borg-repo

# Yedek alma
borg create /backup/borg-repo::backup-{now:%Y-%m-%d} /home /etc

# SSH ile uzak sunucuya
borg create user@backup-server:/backup/borg-repo::backup-{now} /data

# Archive listesi
borg list /backup/borg-repo

# Geri yükleme
borg extract /backup/borg-repo::backup-2024-01-01

# Eski archiveler temizleme
borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=6 /backup/borg-repo

Veritabanı Yedekleme

MySQL/MariaDB

# Tek veritabanı
mysqldump -u root -p database_name > backup.sql

# Tüm veritabanları
mysqldump -u root -p --all-databases > all_databases.sql

# Sıkıştırılmış
mysqldump -u root -p database_name | gzip > backup.sql.gz

# Otomatik script
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backup/mysql"
mysqldump -u root -p'password' --all-databases | gzip > $BACKUP_DIR/all_$DATE.sql.gz
find $BACKUP_DIR -mtime +7 -delete

PostgreSQL

# Tek veritabanı
pg_dump -U postgres database_name > backup.sql

# Custom format (sıkıştırılmış)
pg_dump -U postgres -Fc database_name > backup.dump

# Tüm veritabanları
pg_dumpall -U postgres > all_databases.sql

# Geri yükleme
pg_restore -U postgres -d database_name backup.dump
Cloud Backup

Cloud Backup (rclone)

# Kurulum
curl https://rclone.org/install.sh | sudo bash

# Yapılandırma
rclone config

# Yedekleme
rclone sync /backup/local remote:backup-bucket

# Şifreli yedekleme
rclone sync /backup/local remote:backup-bucket --crypt-remote

# Bandwidth limiti
rclone sync /backup/local remote:backup --bwlimit 10M

Otomatik Yedekleme Script

#!/bin/bash
# /opt/scripts/backup.sh

set -e

DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backup"
LOG_FILE="/var/log/backup.log"

log() {
    echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1" | tee -a $LOG_FILE
}

log "Backup started"

# Veritabanı yedekleme
log "Backing up MySQL..."
mysqldump -u root --all-databases | gzip > $BACKUP_DIR/mysql_$DATE.sql.gz

# Dosya yedekleme
log "Backing up files with restic..."
restic -r $BACKUP_DIR/restic-repo backup /var/www /etc

# Eski yedekleri temizle
log "Cleaning old backups..."
find $BACKUP_DIR -name "mysql_*.sql.gz" -mtime +7 -delete
restic -r $BACKUP_DIR/restic-repo forget --keep-daily 7 --keep-weekly 4 --prune

# Off-site sync
log "Syncing to cloud..."
rclone sync $BACKUP_DIR/restic-repo remote:backup-bucket

log "Backup completed"

Cron ile Zamanlama

# crontab -e
# Her gün 02:00'de
0 2 * * * /opt/scripts/backup.sh

# Her 6 saatte
0 */6 * * * /opt/scripts/backup.sh

Sonuç

Düzenli ve test edilmiş yedekleme stratejisi kritik öneme sahiptir. 3-2-1 kuralını uygulayın, yedeklerinizi düzenli test edin ve felaket kurtarma planınızı güncel tutun.

İlgili Yazılar