
Advanced Backups — Minecraft Java Edition 1.7.10 – 1.21.4
Bağımlılıklar: · Yükleyici: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Minecraft sürümü: 1.7.10 - 1.21.4 · Mod sürümü: 3.7.1 Minecraft…
Bağımlılıklar: · Yükleyici: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Minecraft sürümü: 1.7.10 - 1.21.4 · Mod sürümü: 3.7.1 Minecraft Java Edition'daki standart yedekleme mekanizmasının ciddi sınırlamaları vardır.
Bağımlılıklar:
· Yükleyici: Forge, NeoForge, Fabric, Quilt, Spigot, Paper
· Minecraft sürümü: 1.7.10 - 1.21.4
· Mod sürümü: 3.7.1
Minecraft Java Edition'daki standart yedekleme mekanizmasının ciddi sınırlamaları vardır. Vanilla oyunda yedekler bir menü aracılığıyla elle oluşturulur veya dosyaları kopyalamak için sunucunun durdurulmasını gerektirir. Bu işlemler oyunun ana iş parçacığında çalıştırılır; bu da gigabaytlarca verinin diske yazılması sırasında oynanışın kilitlenmesine, gecikmelere (lag) veya sunucunun geçici olarak erişilemez hale gelmesine yol açar. Bunun yanı sıra standart yöntem yalnızca dünyanın tam kopyalarını oluşturur ve depolama birimini kopyalanmış verilerle hızla doldurur. Advanced Backups modifikasyonu, diferansiyel ve artımlı sıkıştırma modellerini destekleyen zamanlanmış eşzamansız yedeklemeler, eski arşivlerin esnek bir şekilde temizlenmesi ve veri kurtarmaya yönelik yerleşik bir yardımcı araç sunarak bu sorunları çözer.
Yedekleme mekanizmaları: Zip, Differential ve Incremental
Yardımcı araç, dünya dosyalarını işlemek için üç mod sunar; bunlar yürütme hızı, kullanılan disk alanı miktarı ve kurtarma güvenilirliği arasındaki dengeyi belirler:
· Zip (tam kopyalar): Çalışma prensibi, tüm dünya klasörünü tek bir .zip dosyasında arşivlemekten ibarettir. Bu yöntem en fazla kaynak tüketen yöntemdir ve depolama biriminde en fazla boş alanı gerektirir; çünkü her yedek, değişip değişmediğine bakılmaksızın tüm dosyaları içerir. Avantajı ise kurtarmanın basitliğidir — yalnızca gereken dosyayı çıkarmak (arşivden açmak) yeterlidir.
· Differential (diferansiyel yedekleme): Tek bir tam temel arşivin ("full") ve ardından gelen kısmi arşivlerin ("partial") oluşturulmasına dayanır. Kısmi arşivler, yalnızca tam temel arşivin oluşturulmasından bu yana değişikliğe uğramış dosyaları kaydeder. Ara yedeklerin boyutu önemli ölçüde azalır. Dünyanın belirli bir andaki durumunu geri yüklemek için yalnızca iki dosya gerekir: tam temel arşiv ve bu tarihten önceki son kısmi arşiv.
· Incremental (artımlı yedekleme): O da tam ve kısmi arşiv kavramını kullanır. Ancak her kısmi arşiv, yalnızca bir önceki son kısmi arşivin oluşturulmasından bu yana meydana gelen değişiklikleri içerir. Bu, disk alt sistemine binen yükü en aza indirir ve mümkün olan en fazla boş alanı korur. Dezavantajı ise veri kaybı riskinin artmasıdır: artımlı kopya zincirindeki en az bir dosya bozulursa, yeni bir tam yedek oluşturulana kadar sonraki kopyaları geri yüklemek imkânsız olur. Kurtarma süreci de en yavaş olanıdır; çünkü tüm dosya zincirinin sıralı olarak birleştirilmesini gerektirir.
Yeni zincirlerin oluşturulması config.advancedbackups.chains.length ve config.advancedbackups.chains.maxpercent parametreleriyle düzenlenir. Birinci parametre, yeni bir tam arşivin zorunlu olarak oluşturulmasından önce bir zincirdeki kısmi kopyaların azami sayısını belirler. İkinci parametre bir boyut denetimi yapar: bir kısmi arşivde biriken değişikliklerin hacmi, tam arşivin boyutunun belirlenen yüzdesini aşarsa, sistem zinciri otomatik olarak sıfırlar ve yeni bir tam yedek oluşturur.
Otomatik temizleme (Purging) sistemi ve zincirlerle çalışma
Diskin dolup taşmasını önlemek için modifikasyonda eski verilerin otomatik olarak silinmesine ilişkin üç ölçüt uygulanmıştır:
· Saklama gün sayısına göre (config.advancedbackups.purge.days).
· Yedek klasörünün gigabayt cinsinden toplam boyutuna göre (config.advancedbackups.purge.size).
· Toplam kopya dosyası sayısına göre (config.advancedbackups.purge.count).
Diferansiyel veya artımlı kopyalar kullanılırken bir zincirden tek tek dosyaların silinmesi mümkün değildir; çünkü bu, veri bütünlüğünü bozar. Mod, tüm zincirlerle (chains) çalışır. Bir zincir, ancak tüm bileşenleri (tam temel yedek ve ilişkili tüm kısmi arşivler dahil) temizleme ölçütlerine uyduğunda eski sayılır ve silinir. config.advancedbackups.purge.incrementalchains parametresi yardımıyla, sistemin diğer temizleme kısıtlamalarından bağımsız olarak saklamakla yükümlü olduğu en az tam zincir sayısı belirlenebilir. Ayrıca kullanıcı "snapshot" (anlık görüntü) oluşturabilir — bunlar otomatik silinmeye karşı korunan, dünyanın statik kopyalarıdır.
AdvancedBackups.properties yapılandırma dosyasının ayarları
Yedekleme sisteminin çalışma parametreleri AdvancedBackups.properties dosyasında saklanır; bu dosya ilk başlatma sırasında config dizininde oluşturulur. Başlıca yapılandırma anahtarları:
Parametre | Varsayılan değer | Açıklama |
| true | Otomatik yedek oluşturmayı tamamen etkinleştirmeye (true) veya devre dışı bırakmaya (false) olanak tanır. |
| true | Kopyalama yapılmadan önce dünyanın diske zorunlu olarak kaydedilmesinin gerekip gerekmediğini belirler. |
| true | Kopya oluşturulurken standart otomatik kaydetmeyi devre dışı bırakır ve işlem tamamlandıktan sonra yeniden etkinleştirir. |
| 1048576 | Giriş/çıkış arabelleğinin bayt cinsinden boyutu. RAM sınırının üzerindeki bir değer OutOfMemoryError çökmesine yol açabilir. |
| false | Diskin yazma önbelleğinin zorunlu olarak boşaltılması. 1.16'dan önceki Minecraft sürümlerinde kullanılmaz. |
| true | Oyuncu etkinliğinin denetlenmesi. Son yedekten bu yana sunucuda hiç oyuncu olmamışsa, kopya oluşturma atlanır. |
| differential | Yedeklerin türü. Olası değerler: zip (tam kopyalar), differential (diferansiyel yedekleme), incremental (artımlı yedekleme). |
| session.lock,*_old | Dünya klasöründeki, arşive eklenmeyen dosyalar için virgülle ayrılmış dışlama listesi (* gibi maskelere izin verilir). |
| ./backups | Hazır yedeklerin kaydedildiği dizinin yolu (göreli veya mutlak). |
| 0.25 | Yedekler arasında saat cinsinden izin verilen en kısa aralık. Çoğaltmayı önler. 0 — devre dışı. |
| 24.0 | Başka başarılı kopya olmamışsa, ardından yedeğin zorunlu olarak başlatıldığı saat cinsinden en uzun aralık. |
| true | Zamanlayıcı temeli: sunucunun çalışma süresinin hesaplanması (true) veya işletim sisteminin gerçek astronomik saati (false). |
| 1:00 | Kopya oluşturma aralıklarının listesi (örneğin, saatlik bir yedek için 1:00 veya tam gerçek saat 04:00,16:00). |
| false | Sunucu durdurulurken veya kapatılırken dünyanın zorunlu olarak yedeklenmesi. frequency.min sınırına uyar. |
| false | Sunucu başlatılırken dünyanın yedeklenmesi. frequency.min sınırına uyar. |
| 30 | Sunucu açıldıktan sonra başlangıç yedeğinin saniye cinsinden gecikmesi. En küçük değer 5 saniyedir. |
| ops | Oyun içindeki arşivleme süreciyle ilgili toast bildirimlerinin alıcı kategorisi (ops — operatörler, all — herkes, none — hiç kimse). |
| 500 | Oyunculara ilerleme paketlerinin milisaniye cinsinden gönderilme sıklığı. Daha düşük değerler ağ yükünü artırır. |
| true | Ayrıntılı yüzde cinsinden arşivleme ilerlemesinin sunucunun sistem konsoluna yazdırılmasına izin verir. |
| 5000 | Yedekleme ilerleyişinin milisaniye cinsinden konsola kaydedilme aralığı. |
| 50.0 | Kopyalar klasörünün gigabayt cinsinden toplam boyutu sınırı. Aşıldığında en eski kopyalar silinir. 0 — devre dışı. |
| 0 | Yedeklerin gün cinsinden saklanma süresi. Daha eskileri silinir. 0 — devre dışı. |
| 0 | Diskte izin verilen azami kopya sayısı. Daha eskileri silinir. 0 — devre dışı. |
| true | Hacme göre temizleme durumunda artımlı zincirlerin silinmesine izin verir. false ise artımlı kopyalar asla temizlenmez. |
| 1 | Temizlemenin her hâlükârda diskte bırakmakla yükümlü olduğu en az artımlı zincir sayısı. |
| 4 | ZIP arşivlerinin sıkıştırma düzeyi (1'den 9'a kadar). Daha büyük değerler yer kazandırır ancak CPU'yu yorar. |
| 50 | Yeni bir tam arşiv oluşturulmadan önceki azami kısmi yedek (diferansiyel/artımlı) sayısı. |
| true | Zincirlerin içindeki tam temel kopyaların ve ardından gelen ara kopyaların sıkıştırılmasına izin verir. |
| true | Akıllı zincir sıfırlama. Dünyanın tüm dosyaları değiştirilmişse, kopya otomatik olarak tam kopyaya dönüşür. |
| 50.0 | Kısmi yedeğin tama göre yüzde cinsinden boyut sınırı. Aşılırsa tam bir yedek oluşturulur. |
Yedekleme yönetim komutları
Modifikasyonun yönetimi, operatör erişim düzeyi gerektiren konsol komutlarıyla gerçekleştirilir (komut seçenekleri, komut bloklarıyla daha iyi uyumluluk için 3.7 sürümünde, yetki düzeyi gereksinimi 2 değerine düşürülerek güncellenmiştir):
· /backup start — yedekleme sürecini eşzamansız modda başlatır. Komut, tüm zamanlama, en kısa aralık ve oyuncu etkinliği ayarlarını dikkate alır.
· /backup force — oyuncu etkinliği denetimlerini ve şu süre sınırını yok sayarak kopyalama sürecini zorunlu olarak başlatır: frequency.min.
· /backup snapshot <name> — belirtilen adla snapshots alt klasöründe tam bir yedek (anlık görüntü) oluşturur. Bu arşiv, eski yedeklerin otomatik temizlenmesi sırasında dikkate alınmaz ve sistem tarafından asla otomatik olarak silinmez.
· /backup reload-config — sunucunun ya da oyun istemcisinin yeniden başlatılmasına gerek kalmadan parametreleri AdvancedBackups.properties dosyasından yeniden yükler. 2.2'den önceki mod sürümlerinde bunun için alternatif komut olan /advancedbackups reload.
· /backup check — zamanlayıcının mevcut durumunu çözümler ve zamanlamaya göre bir sonraki planlanmış yedeklemeye ne kadar zaman kaldığına ilişkin bilgi gösterir.
· /backup reset — mevcut artımlı veya diferansiyel kopya zincirinin sayacını sıfırlar. Bir sonraki planlanmış ya da elle başlatılan yedek, zorunlu olarak tam bir arşiv ("full") olarak oluşturulur.
Komutlar için yetki düzeyinin 2 değerine düşürülmesi, sunucu adına konsol komutları çağıran Command Blocks ve üçüncü taraf zamanlayıcı eklentileri yardımıyla kopya oluşturmanın otomatikleştirilmesine olanak tanır.
Konsol kurtarma yardımcı aracı (Command Line Restoration)
Diferansiyel ve artımlı yedekler, birbiriyle ilişkili çok sayıda değişiklik dosyasından oluştuğundan, bunların elle kurtarılması karmaşık bir süreçtir. Bu görevi çözmek için modifikasyonun JAR dosyasına özel bir konsol yardımcı aracı yerleştirilmiştir.
Kopyalar ilk kez oluşturulurken modifikasyon, yedeklerin bulunduğu dizinde otomatik olarak yardımcı betikler oluşturur:
· restore-bootstrap.bat Windows işletim sistemi için.
· restore-bootstrap.sh Linux ve macOS işletim sistemleri için.
Bu betikler, JAR dosyasına yerleştirilmiş kurtarma sihirbazını başlatır. Kurtarma arayüzünü terminal aracılığıyla elle başlatmak için şu komut kullanılır:
|
(JAR dosyasının adı, yüklü modun sürümüyle tam olarak eşleşmelidir).
Yardımcı aracın konsol arayüzü etkileşimli modda çalışır:
1. Mevcut zincirleri ve anlık görüntüleri çözümlemek için yedek klasörünün taranmasının başlatılması.
2. Mevcut kurtarma noktalarının; tarih, saat ve kopya türü (Full, Diff, Inc) belirtilerek listelenmesi.
3. Seçilen arşivin zincir bütünlüğünün denetlenmesi. Bu bir artımlı kopyaysa, yardımcı araç tam temel yedekten seçilen noktaya kadar tüm ara parçaların mevcut olup olmadığını otomatik olarak denetler.
4. Çıkarma (arşivden açma) için hedef klasörün sorulması. Yardımcı araç, dosyaları sıralı olarak birleştirip değiştirerek dünyanın seçilen kopyanın oluşturulduğu andaki tam durumunu yeniden oluşturur.
Kurtarmaya başlamadan önce Minecraft sunucusunu tamamen durdurmak gerekir. Çalışan bir sunucuda dosyaları kurtarmaya çalışmak, dünya veritabanının ve bölge dosyalarının (.mca) bozulmasına yol açar.
Farklı platformlarda çalışma özellikleri ve optimizasyon
Modifikasyon, seçilen kurulum platformuna bağlı olarak mimari farklılıklar gösterir:
· İstemci tarafı toast bildirimleri: Yedek oluşturmanın başlangıcı ve tamamlanmasıyla ilgili görsel açılır bildirimler, vanilla toast sistemi aracılığıyla gerçekleştirilir. İstemci tarafında görüntülenebilmeleri için uyumlu bir modun (Forge, NeoForge veya Fabric) yüklü olması gerekir. Mod, Spigot veya Paper sunucularında kullanıldığında, modu yüklü olmayan istemciler görsel bildirimleri görmez; günlük kaydı ayarları izin veriyorsa yalnızca sohbette sıradan metin iletileri alır.
· Sürüm 1.7.10: Oyun motorunun eski sürümlerinin teknik sınırlamaları nedeniyle Minecraft 1.7.10 için mod sürümü grafik toast bildirimleri sistemini desteklemez. Bunun yerine, kopyalama ilerlemesi doğrudan oyun ekranının üzerinde basit bir metin katmanı biçiminde gösterilir.
· RAM ayrımının denetimi: Eşzamansız sıkıştırma işlemi, JVM'de bellek arabelleklerinin ayrılmasını gerektirir. Sınırlı miktarda RAM bulunan bir sunucuda (örneğin 2-4 GB) config.advancedbackups.buffer parametresi için çok büyük bir boyut (10-20 MB'den fazla) ve yüksek bir sıkıştırma düzeyi config.advancedbackups.zips.compression (düzey 8-9) ayarlanırsa, bu, yığın taşmasına (JVM Heap) ve sunucunun OutOfMemoryError hatasıyla beklenmedik şekilde sonlanmasına yol açabilir. Sınırlı kaynaklara sahip sunucularda kararlı çalışma için standart arabellek boyutu olan 1 MB'nin ve 4'ten yüksek olmayan bir sıkıştırma düzeyinin korunması önerilir.
Sonuç
Advanced Backups, Minecraft Java Edition'da oyun dünyalarının korunmasını sağlamaya yönelik kapsamlı bir araç çözümüdür. Simple Backups gibi basit alternatiflerden veya vanilla araçlardan farklı olarak bu mod, artımlı zincirlerin kullanımı sayesinde en az disk alanı tüketimiyle tam kapsamlı bir yedekleme stratejisi kurmanıza olanak tanır. Modifikasyonun başlıca sınırlaması, arşivlerin harici depolara (örneğin doğrudan moddan Google Drive veya FTP sunucularına) otomatik olarak yüklenmesi için yerleşik bulut sağlayıcılarının bulunmamasıdır; bu da ./backups klasörünün eşitlenmesi için harici betiklerin yapılandırılmasını gerektirir. Modifikasyon, oyunanışı durdurmadan veri kaybına karşı korumanın sağlanmasının kritik önem taşıdığı orta ölçekli açık ve özel sunuculara kurulum için önerilir.
Kurulum
Tipik bir kurulum yaklaşık 5 dakika sürer. Akış aynıdır; yalnızca loader ve uygun build değişir.
- 1Stop your Minecraft server.
- 2Drop the plugin .jar into the server /plugins folder.
- 3Start the server once so the plugin generates its config files.
- 4Edit /plugins/<name>/config.yml as needed, then run /reload confirm or restart.








