helpful_guy
Yeni Üye
Varsayılan Senaryo
Ubuntu 22.04 VDS üzerinde çalışan Minecraft sunucusunun günlük 02:00’dersync ile /var/backups/world dizini uzak S3 bucket’ına kopyalanması planlanıyor. rsync sürecinde TCP bağlantısı kesildiğinde, systemd‑minecraft servisi SIGTERM alır ve kapanır; ardından yedekleme scripti systemctl restart minecraft komutunu çalıştırır, bu da yeniden başlatma sırasında veritabanı bozulmasına yol açar.Çökmeyi Önleyecek Adımlar
- Yedekleme Öncesi Durum Kontrolü
Servisi durdurmak, dosya kilitlerini açar ve yedekleme sırasında bozulma riskini azaltır.Bash:if systemctl is-active --quiet minecraft; then # servisi durdur systemctl stop minecraft fi - Yedekleme Komutunu İzole Et
Bash:rsync -avz /var/backups/world/ s3://mybucket/world/ & pid=$! wait $pid rc=$?waitvercile başarısızlık durumunda işlem sonlandırılır, başarılıysa sonraki adımlar devam eder. - Başarısızlıkta Geri Alma
Bash:if [ $rc -ne 0 ]; then echo "Yedekleme hatası: yeniden başlatma iptal ediliyor" exit 1 fi - Servisin Yeniden Başlatılması
Bash:systemctl start minecraft - Failover Mekanizması
- Yedekleme sadece birden fazla kopya (geçici Docker konteyneri) içerikten geçer.
- Başarısızlık durumunda
systemctl stop minecraftve manual restore scripti çalıştırılır.
Artı‑Eksiler
| Yaklaşım | Artılar | Eksiler |
|---|---|---|
| Servisi durdurmadan yedekleme | Hızlı, düşük gecikme | Dosya kilidi bozulabilir |
| Servisi durdur ve sonra başlatma | Veri tutarlılığı | İstemci bağlantısı kaybolabilir |
| İzole yedekleme & geri alma | Hata erken tespit | Ekaynak tüketimi |
| Failover (ekstra VM) | Kesintisiz hizmet | Yüksek maliyet, karmaşık konfigürasyon |