Minecraft sunucu yedekleme, dünya dosyalarını kopyalamaktan ibaret değildir: doğru sırayla durdurulmuş bir dünya yazımı, eklenti verilerinin ve veritabanının aynı ana ait olması ve arşivin sunucu diskinin dışında bir yerde durması gerekir. Bu üç şart sağlanmadığında elinizdeki dosya bir yedek değil, sadece kopyalanmış bir klasördür — ve genellikle bunu geri yüklemeye çalıştığınız gün öğrenirsiniz.
Aşağıda tam olarak neyi yedekleyeceğinizi, sunucu açıkken tutarlı arşiv almanın konsol komutlarını, Windows ve Linux tarafında otomatik görev kurmayı, saklama planını ve geri yükleme adımlarını bulacaksınız. Anlatılanlar Paper, Purpur, Spigot, Forge ve Fabric sunucularının hepsinde aynı şekilde geçerlidir.
Tam olarak neyi yedeklemelisiniz?#
En sık yapılan hata yalnızca world klasörünü almaktır. Nether ve End ayrı klasörlerdedir; oyuncu envanterleri dünya klasörünün içinde playerdata altında durur, ama ekonomi bakiyeleri, arazi koruma bölgeleri ve yetki grupları eklenti klasöründedir. Aşağıdaki tablo bir Minecraft sunucusunda yedeğe girmesi gereken her şeyi önceliğine göre listeler.
| Öğe | İçeriği | Öncelik |
|---|---|---|
world/ | Ana dünya, region dosyaları, playerdata, level.dat | Zorunlu |
world_nether/ · world_the_end/ | Nether ve End boyutları | Zorunlu |
plugins/ | Eklenti jar’ları ve tüm yapılandırma/veri klasörleri | Zorunlu |
server.properties | Port, oyun modu, view-distance, online-mode | Zorunlu |
ops.json · whitelist.json | Yetkili listesi ve beyaz liste | Zorunlu |
banned-players.json · banned-ips.json | Ban kayıtları | Önerilir |
bukkit.yml · spigot.yml · paper.yml | Sunucu davranış ve performans ayarları | Önerilir |
| MySQL / MariaDB dökümü | LuckPerms, ekonomi, CoreProtect verileri veritabanındaysa | Zorunlu |
logs/ | Olay incelemesi için son günlerin günlükleri | İsteğe bağlı |
| Sunucu jar’ı | Kullandığınız Paper/Purpur build’i | Gerekmez |
Sunucu jar’ını yedeğe koymanıza gerek yok, resmî kaynaktan yeniden indirilebilir. Ancak hangi sürümü kullandığınızı bir metin dosyasına not edin — 26.2 dünyasını daha eski bir jar ile açmaya çalışmak veri kaybına yol açar. Yapılandırma satırlarının anlamını hatırlamak isterseniz server.properties ayarları sayfası elinizin altında olsun.
mysqldump alın. Dosyalar ile veritabanı farklı zamanlara aitse geri yüklemede oyuncu bakiyeleri ile arazi kayıtları birbirini tutmaz.Yedek almadan önce: save-off, save-all, save-on#
Minecraft sunucusu chunk verilerini bellekte tutar ve belirli aralıklarla diske yazar. Yazma sürerken region dosyasını kopyalarsanız yarım yazılmış bir dosya elde edersiniz; bu dünya açıldığında chunk kayıpları veya level.dat hataları olarak ortaya çıkar. Doğru sıra şudur:
save-off
save-all flush
> arşivi burada alın <
save-on
save-off otomatik kaydetmeyi durdurur, save-all flush bellekte bekleyen her şeyi diske indirir ve işlem bitene kadar bekler. Arşiv alındıktan sonra save-on ile yazımı geri açmayı unutmayın; unutursanız sunucu bir sonraki çökmede saatlerce ilerlemeyi kaybeder. Konsoldan çalıştırabileceğiniz diğer komutlar için konsol komutları listesine bakabilirsiniz.
Manuel yedek alma#
Manuel yedek, büyük bir değişiklik öncesinde (eklenti güncellemesi, sürüm yükseltmesi, WorldEdit ile toplu düzenleme) alacağınız tek seferlik arşivdir. İki komut yeterlidir.
Linux tarafında tar ile#
cd /opt/minecraft
tar -czf /yedek/mc-$(date +%Y%m%d-%H%M).tar.gz \
world world_nether world_the_end plugins \
server.properties ops.json whitelist.json banned-players.json
Windows tarafında PowerShell ile#
$tarih = Get-Date -Format "yyyyMMdd-HHmm"
$kaynak = "C:\minecraft\server\*"
Compress-Archive -Path $kaynak -DestinationPath "D:\yedek\mc-$tarih.zip"
Arşivi sunucudan indirmek için SFTP kullanın. Sunucu dosyalarınızı düzenlerken ve indirirken işinize yarayacak ücretsiz araçları aşağıya topladık.
Bağlantılar resmî kaynaklara gider. Sunucu dosyalarınızı üçüncü taraf “hızlandırılmış indirme” sitelerine yüklemeyin.
Otomatik yedekleme kurmak#
Elle alınan yedek, alınmayı unutulan yedektir. Otomasyon şart. İşletim sistemine göre iki yol var; ayrıntılı kurulum adımları ilgili sayfalarda, burada özü veriyoruz.
Linux: cron ile günlük yedek#
/opt/minecraft/yedek.sh adında bir betik oluşturun, çalıştırma izni verin ve crontab’a ekleyin. Betik 7 günden eski arşivleri de temizler:
#!/bin/bash
HEDEF=/yedek
KAYNAK=/opt/minecraft
TARIH=$(date +%Y%m%d-%H%M)
tar -czf "$HEDEF/mc-$TARIH.tar.gz" -C "$KAYNAK" \
world world_nether world_the_end plugins server.properties ops.json whitelist.json
find "$HEDEF" -name "mc-*.tar.gz" -mtime +7 -delete
chmod +x /opt/minecraft/yedek.sh
crontab -e
# her gece 04:00'te çalışsın:
0 4 * * * /opt/minecraft/yedek.sh
Windows: Görev Zamanlayıcı ile#
Yukarıdaki PowerShell komutunu bir .ps1 dosyasına kaydedin, Görev Zamanlayıcı’da yeni bir görev oluşturup tetikleyiciyi günlük olarak ayarlayın ve eylem olarak powershell.exe -ExecutionPolicy Bypass -File D:\betik\yedek.ps1 girin. Sunucunun kendisini servis olarak çalıştırıyorsanız yedek görevinin de aynı kullanıcı hesabıyla çalıştığından emin olun.
Sunucunuzu 7/24 ayakta tutma tarafında systemd servisi veya start.bat yapılandırması sayfalarındaki kurulum, yedek görevinin hangi kullanıcı ve hangi dizinde çalışacağını da belirler.
Artan yedekle süreyi ve diski kısaltmak#
Dünya büyüdükçe tam arşiv almak uzar; 40 GB’lık bir survival dünyasında sıkıştırma birkaç dakika sürer ve bu süre boyunca save-off durumda kalırsınız. Çözüm, her seferinde her şeyi kopyalamak yerine yalnızca değişen region dosyalarını aktarmaktır. Linux tarafında rsync, sert bağ (hard link) desteğiyle bunu diskte tek kopya yer kaplayacak şekilde yapar:
rsync -a --delete \
--link-dest=/yedek/gunluk/son \
/opt/minecraft/ /yedek/gunluk/$(date +%Y%m%d)/
ln -sfn /yedek/gunluk/$(date +%Y%m%d) /yedek/gunluk/son
Her çalıştırmada tam bir dizin görürsünüz, ama değişmeyen dosyalar önceki yedekle aynı disk bloklarını paylaşır. Windows tarafında benzer işi robocopy yapar:
robocopy C:\minecraft\server D:\yedek\gunluk /MIR /R:2 /W:5 /LOG+:D:\yedek\yedek.log
Artan yedek hızlıdır ama tek başına yeterli değildir: aynalanan bir dizin, silinen veriyi de aynalar. Bu yüzden artan yedeği günlük hızlı kurtarma için, sıkıştırılmış tam arşivi ise haftalık uzun süreli saklama için kullanın. İkisini birlikte çalıştırmak, hem geri dönüş süresini hem disk maliyetini makul seviyede tutar.
Saklama planı ve 3-2-1 kuralı#
3-2-1 kuralı basittir: verinin üç kopyası olsun, iki farklı ortamda dursun, biri sunucunun bulunduğu yerin dışında olsun. Minecraft sunucusuna uyarlanmış pratik bir plan şöyle görünür:
- Sunucu diski
- Son 7 günün günlük arşivleri. Hızlı geri dönüş için.
- Uzak depolama
- Son 4 haftanın haftalık arşivleri. Ayrı bir makinede veya nesne depolamada.
- Soğuk kopya
- Aylık arşivler, 6-12 ay. Ekonomi ve arazi verisi olan sunucularda kritik.
Yedek sıklığını oyuncu yoğunluğuna göre belirleyin: 10 kişiye kadar günlük, 10-30 oyunculu aktif bir sunucuda 6 saatte bir, 30 üstünde 2-4 saatte bir. Ölçü, “ne kadarlık ilerlemenin kaybını göze alabilirim” sorusunun cevabıdır. Strateji tarafını daha derin okumak isterseniz sunucu yedekleme stratejileri ve 3-2-1 kuralı sayfası bu konuyu genel sunucu yönetimi açısından ele alıyor.
Panel üzerinden yedekleme#
Pterodactyl gibi bir panel kullanıyorsanız sunucunun Backups sekmesinden tek tıkla arşiv oluşturabilir, saklanacak yedek sayısını node ayarlarından sınırlayabilirsiniz. Panel yedekleri pratiktir ama iki noktaya dikkat edin: yedek çoğu kurulumda aynı node’un diskinde durur ve panelin bellek limiti dolduğunda büyük dünyalarda yedek görevi yarıda kesilebilir. Panel yedeklerini düzenli olarak indirip yerel bir kopya tutun. Arayüzü tanımıyorsanız Pterodactyl panel kullanım rehberine bakın.
Rollback eklentileri yedeğin yerine geçmez#
CoreProtect blok değişikliklerini kaydeder ve grief sonrası belirli bir alanı veya oyuncunun yaptıklarını geri alır. Bu son derece faydalıdır, ama yedekleme değildir: disk arızası, silinen dünya klasörü, bozulan level.dat veya sunucunun ele geçirilmesi durumlarında CoreProtect de sizinle birlikte kaybolur.
Bölge korumasıyla önleme, rollback ile onarma ve yedekleme ile kurtarma üç ayrı katmandır; birbirlerinin yerine geçmezler. Bölge koruması tarafı için WorldEdit ve WorldGuard rehberi işinizi görür.
Yedekten geri yükleme adımları#
-
Sunucuyu düzgün kapatın#
Konsolda
stopyazın. Süreci zorla sonlandırmayın; kapanış sırasında yazılmayan chunk’lar geri yükleme sonrası karışıklık yaratır. -
Mevcut dünyayı silmeyin, taşıyın#
world,world_netherveworld_the_endklasörleriniworld-bozuk-20260811gibi tarihli adlara taşıyın. Geri yükleme beklediğiniz gibi gitmezse elinizde kalan tek kopya bunlardır. -
Arşivi sunucu köküne açın#
tar -xzf /yedek/mc-20260810-0400.tar.gz -C /opt/minecraftWindows’ta aynı işi 7-Zip veya
Expand-Archiveyapar. Arşivin içindeki klasör yapısının sunucu kökünde birebir oturduğundan emin olun. -
Dosya sahipliğini ve izinleri kontrol edin#
Linux’ta yedeği root ile açtıysanız sunucu kullanıcısı dosyaları okuyamaz.
chown -R minecraft:minecraft /opt/minecraftile sahipliği düzeltin. -
Veritabanını da geri yükleyin#
Eklenti verileri MySQL’deyse
mysql -u kullanici -p veritabani < dokum.sqlile aynı tarihli dökümü yükleyin. Dosyalar ile veritabanının aynı ana ait olması şart. -
Başlatın ve konsolu izleyin#
Sunucuyu açın, açılış günlüğünde eksik chunk, bozuk region veya eklenti hatası uyarısı olup olmadığına bakın. Oyuna girip spawn çevresini, birkaç oyuncu arazisini ve ekonomi bakiyelerini gözle doğrulayın.
Yedeğinizin gerçekten çalıştığını test edin#
Yedekleme sisteminin tek gerçek testi geri yüklemedir. Ayda bir kez, en güncel arşivi bir test ortamına açıp sunucuyu ayağa kaldırın. Kontrol edeceğiniz üç şey var: dünya hatasız yükleniyor mu, eklentiler yapılandırmalarını okuyabiliyor mu, oyuncu verileri (envanter, bakiye, yetki grubu) yerinde mi.
Test ortamı olarak ayrı bir VDS kullanmak en temizidir; canlı sunucunuza dokunmadan, aynı Java sürümüyle bire bir deneme yaparsınız. Arşivin bozulmadığını hızlıca anlamak içinse sıkıştırma bütünlüğünü sınayabilirsiniz:
gzip -t /yedek/mc-20260810-0400.tar.gz && echo "Arsiv saglam"
Sık yapılan yedekleme hataları#
Yalnızca world klasörünü almak#
Nether, End ve plugins klasörü olmadan geri yüklediğinizde oyuncular dünyayı bulur ama bakiyelerini, arazilerini ve yetkilerini bulamaz. Tabloyu baştan gözden geçirin.
save-off yapmadan kopyalamak#
Çalışan sunucudan doğrudan alınan kopya, region dosyalarının yarısı yazılmış halde olabilir. Arşiv sorunsuz görünür, dünya açıldığında chunk boşlukları çıkar.
Yedeği aynı diskte tutmak#
Disk arızası, silme kazası veya sunucunun ele geçirilmesi hem veriyi hem yedeği götürür. Saldırganlar bulabildikleri arşivleri de siler; olay sonrası yapılacaklar için sunucu ele geçirildiyse ne yapmalı sayfasına bakın.
Sınırsız yedek biriktirmek#
Temizlik adımı olmayan bir betik günün birinde diski doldurur ve sunucu dünya yazamaz hale gelir. find ... -mtime +7 -delete satırını betiğinizde bulundurun.
Geri yüklemeyi hiç denememek#
İki yıldır yedek alan ama bir kez bile açmayan sunucu sahiplerinin çoğu, ihtiyaç anında arşivin eksik ya da bozuk olduğunu keşfeder. Test, yedekleme sürecinin parçasıdır.
Güvenlik tarafını da unutmayın#
Yedek arşivleri ops.json, veritabanı bağlantı bilgileri ve bazen eklenti API anahtarlarını içerir. Bunları herkese açık bir bulut klasörüne veya paylaşımlı bir web dizinine koymayın; şifreli bir aktarım kanalı ve erişimi sınırlı bir depo kullanın. Sunucu güvenliğinin geri kalanı için Minecraft sunucu güvenliği rehberimiz iyi bir başlangıç noktası. Yedeklerin ve dünyanın durduğu makinede NVMe SSD kullanmak da bir güvenlik önlemidir: chunk yazımı hızlı biten sunucuda tutarsız dosya riski düşer. Batihost’un Ryzen 9 ve NVMe tabanlı Minecraft sunucu paketleri bu tarafı hazır sunar.
Özetle#
Yedeklemeyi üç kurala indirgeyin: doğru sırayı kullanın (save-off → save-all flush → arşiv → save-on), her şeyi alın (üç dünya klasörü, plugins, yapılandırma dosyaları ve veritabanı dökümü), kopyayı sunucunun dışına çıkarın. Otomasyonu cron veya Görev Zamanlayıcı ile kurun, eski arşivleri temizleyen bir adım ekleyin ve ayda bir geri yüklemeyi gerçekten deneyin. CoreProtect gibi rollback araçları bu zincirin tamamlayıcısıdır, yerine geçeni değil.