tr
VPS Yedekleme Stratejisi: Otomatik Yedekleme Rehberi
Yedekleme, VPS yönetiminin en kritik ancak en sık ihmal edilen unsurudur. Veri kaybı yaşamak; donanım arızası, yanlışlıkla silme veya siber saldırıdan kaynaklanabilir. Bu rehber, 3-2-1 yedekleme kuralına dayanan kapsamlı ve otomatik bir yedekleme stratejisi oluşturmanızı sağlar.
Need this done for your project?
We implement, you ship. Async, documented, done in days.
3-2-1 Yedekleme Kuralı ve Strateji Planlaması
3-2-1 yedekleme kuralı profesyonel veri koruma standartlarının temelidir:
- **3**: En az 3 kopya bulundurun (1 orijinal + 2 yedek)
- **2**: 2 farklı ortam/depolama türü kullanın (yerel disk + uzak sunucu)
- **1**: 1 kopya farklı fiziksel konumda olsun (offsite backup)
Offshore VPS için pratik uygulama:
- Kopya 1: VPS'in yerel /backup dizini
- Kopya 2: Uzak offshore depolama sunucusu
- Kopya 3: Şifreli bulut depolama (Backblaze B2, Wasabi)
Yedekleme sıklığı önerileri:
- **Veritabanları**: Günlük (mümkünse saatlik)
- **Web dosyaları**: Günlük
- **Sistem yapılandırması**: Haftalık
- **Tam sistem yedeği**: Haftalık
Yedekleme dizini oluşturun:
sudo mkdir -p /backup/{daily,weekly,monthly}
sudo chmod 700 /backup
rsync ile Otomatik Dosya Yedekleme
rsync, değişen dosyaları verimli şekilde senkronize eden güçlü bir yedekleme aracıdır.
Yerel yedekleme scripti oluşturun:
sudo vim /usr/local/bin/backup-daily.sh
Script içeriği:
#!/bin/bash
BACKUP_DIR="/backup/daily"
DATE=$(date +%Y%m%d)
RETENTION_DAYS=7
# Web dosyalarını yedekle
rsync -avz --delete /var/www/ $BACKUP_DIR/www-$DATE/
# Nginx yapılandırmasını yedekle
rsync -avz /etc/nginx/ $BACKUP_DIR/nginx-$DATE/
# SSH yapılandırmasını yedekle
rsync -avz /etc/ssh/ $BACKUP_DIR/ssh-$DATE/
# Eski yedekleri temizle
find $BACKUP_DIR -maxdepth 1 -type d -mtime +$RETENTION_DAYS -exec rm -rf {} ;
echo "Yedekleme tamamlandi: $(date)"
Script'i çalıştırılabilir yapın:
sudo chmod +x /usr/local/bin/backup-daily.sh
Uzak sunucuya rsync yedekleme:
rsync -avz -e "ssh -i /root/.ssh/backup_key -p 2222" /backup/daily/ backup_user@UZAK_SUNUCU_IP:/remote-backup/
Bu komutu script içine ekleyerek uzak yedeklemeyi otomatikleştirin.
Veritabanı Yedekleme Otomasyonu
Veritabanı yedeklemeleri, dosya yedeklemelerinden bağımsız olarak yönetilmelidir.
MySQL/MariaDB yedekleme scripti:
sudo vim /usr/local/bin/backup-db.sh
Script içeriği:
#!/bin/bash
DB_USER="root"
DB_PASS="VERITABANI_SIFRESI"
BACKUP_DIR="/backup/daily/databases"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# Tüm veritabanlarını yedekle
mysqldump -u $DB_USER -p$DB_PASS --all-databases --single-transaction --quick --lock-tables=false | gzip > $BACKUP_DIR/all-databases-$DATE.sql.gz
# Belirli bir veritabanını yedekle
mysqldump -u $DB_USER -p$DB_PASS wordpress_db --single-transaction | gzip > $BACKUP_DIR/wordpress-$DATE.sql.gz
# 30 günden eski yedekleri sil
find $BACKUP_DIR -name "*.sql.gz" -mtime +30 -delete
echo "Veritabani yedeklemesi tamamlandi: $DATE"
PostgreSQL yedekleme:
sudo vim /usr/local/bin/backup-postgres.sh
#!/bin/bash
BACKUP_DIR="/backup/daily/postgres"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
sudo -u postgres pg_dumpall | gzip > $BACKUP_DIR/postgres-all-$DATE.sql.gz
find $BACKUP_DIR -name "*.sql.gz" -mtime +30 -delete
Cron ile Yedekleme Otomasyonu ve İzleme
Yedekleme scriptlerini cron ile otomatikleştirin:
sudo crontab -e
Cron görevleri ekleyin:
# Her gece 02:00'da dosya yedeklemesi
0 2 * * * /usr/local/bin/backup-daily.sh >> /var/log/backup.log 2>&1
# Her gece 02:30'da veritabanı yedeklemesi
30 2 * * * /usr/local/bin/backup-db.sh >> /var/log/backup-db.log 2>&1
# Her Pazar 03:00'da haftalık yedek
0 3 * * 0 rsync -avz /backup/daily/ /backup/weekly/
# Yedekleme loglarını izle
0 8 * * * tail -20 /var/log/backup.log | mail -s "VPS Yedekleme Raporu" [email protected]
Yedek bütünlüğünü doğrulama scripti:
sudo vim /usr/local/bin/verify-backup.sh
#!/bin/bash
BACKUP_DIR="/backup/daily"
LAST_BACKUP=$(ls -t $BACKUP_DIR | head -1)
if [ -z "$LAST_BACKUP" ]; then
echo "HATA: Yedek bulunamadi!"
exit 1
fi
BACKUP_AGE=$(find $BACKUP_DIR/$LAST_BACKUP -maxdepth 0 -mtime +1)
if [ -n "$BACKUP_AGE" ]; then
echo "UYARI: Son yedek 24 saatten eski!"
fi
echo "Yedekleme durumu: OK - $LAST_BACKUP"
Anubiz Host offshore VPS planlarında yedekleme politikası üzerinde tam özerklik sahibisiniz; veri saklama süresi ve konumu hakkında hiçbir kısıtlama yoktur.
Related Services
Why Anubiz Host
100% async — no calls, no meetings
Delivered in days, not weeks
Full documentation included
Production-grade from day one
Security-first approach
Post-delivery support included
Ready to get started?
Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.