
Advanced Backups — Minecraft Java Edition 1.7.10 – 1.21.4
Závislosti: · Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Verze Minecraftu: 1.7.10 - 1.21.4 · Verze módu: 3.7.1 Standardní…
Závislosti: · Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Verze Minecraftu: 1.7.10 - 1.21.4 · Verze módu: 3.7.1 Standardní mechanismus zálohování v Minecraft Java Edition má vážná omezení. Ve vanilla hře se
Závislosti:
· Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper
· Verze Minecraftu: 1.7.10 - 1.21.4
· Verze módu: 3.7.1
Standardní mechanismus zálohování v Minecraft Java Edition má vážná omezení. Ve vanilla hře se zálohy vytvářejí ručně pomocí nabídky nebo vyžadují zastavení serveru kvůli kopírování souborů. Tyto operace probíhají v hlavním vlákně hry, což vede k zamrzání hry, lagům nebo dočasné nedostupnosti serveru během zápisu gigabajtů dat na disk. Kromě toho standardní metoda vytváří pouze úplné kopie světa, čímž rychle zaplňuje úložiště duplikovanými daty. Modifikace Advanced Backups tyto problémy řeší tím, že nabízí asynchronní plánované zálohování s podporou diferenciálních a inkrementálních modelů komprese, flexibilním mazáním zastaralých archivů a vestavěným nástrojem pro obnovu dat.
Mechanismy zálohování: Zip, Differential a Incremental
Nástroj poskytuje tři režimy zpracování souborů světa, které určují rovnováhu mezi rychlostí provádění, množstvím využitého místa na disku a spolehlivostí obnovy:
· Zip (úplné kopie): Princip fungování spočívá v archivaci celé složky světa do jediného souboru .zip. Tento způsob je nejnáročnější na zdroje a vyžaduje nejvíce volného místa na úložišti, protože každá záloha obsahuje všechny soubory bez ohledu na to, zda byly změněny. Jeho výhodou je jednoduchost obnovy — stačí jen rozbalit požadovaný soubor.
· Differential (diferenciální zálohování): Vychází z vytvoření jednoho základního úplného archivu ("full") a následných částečných archivů ("partial"). Částečné archivy zaznamenávají pouze ty soubory, které se změnily od okamžiku vytvoření základního úplného archivu. Objem mezilehlých záloh se výrazně snižuje. K obnově stavu světa k určitému okamžiku jsou potřeba pouze dva soubory: základní úplný archiv a poslední částečný archiv před tímto datem.
· Incremental (inkrementální zálohování): Rovněž využívá koncepci úplných a částečných archivů. Každý částečný archiv však obsahuje pouze změny, ke kterým došlo od okamžiku vytvoření předchozího částečného archivu. To minimalizuje zátěž diskového subsystému a šetří maximální množství volného místa. Nevýhodou je zvýšené riziko ztráty dat: pokud bude poškozen byť jen jeden soubor v řetězci inkrementálních kopií, obnova následujících kopií až do vytvoření nové úplné zálohy bude nemožná. Proces obnovy je rovněž nejpomalejší, protože vyžaduje postupné sloučení celého řetězce souborů.
Vytváření nových řetězců je regulováno parametry config.advancedbackups.chains.length a config.advancedbackups.chains.maxpercent. První parametr určuje maximální počet částečných kopií v řetězci před vynuceným vytvořením nového úplného archivu. Druhý parametr provádí kontrolu velikosti: pokud objem nahromaděných změn v částečném archivu překročí stanovené procento velikosti úplného archivu, systém automaticky resetuje řetězec a vytvoří novou úplnou zálohu.
Systém automatického mazání (Purging) a práce s řetězci
Aby se zabránilo zaplnění disku, jsou v modifikaci implementována tři kritéria pro automatické mazání zastaralých dat:
· Podle počtu dní uchovávání (config.advancedbackups.purge.days).
· Podle celkového objemu složky záloh v gigabajtech (config.advancedbackups.purge.size).
· Podle celkového počtu souborů kopií (config.advancedbackups.purge.count).
Při použití diferenciálních nebo inkrementálních kopií je mazání jednotlivých souborů z řetězce nemožné, protože by to narušilo integritu dat. Mód pracuje s celými řetězci (chains). Řetězec je považován za zastaralý a smazán teprve tehdy, když všechny jeho součásti (včetně základní úplné zálohy a všech souvisejících částečných archivů) splňují kritéria mazání. Pomocí parametru config.advancedbackups.purge.incrementalchains lze nastavit minimální počet úplných řetězců, které je systém povinen uchovávat bez ohledu na ostatní omezení mazání. Uživatel může také vytvářet „snímky" (snapshots) — jsou to statické kopie světa, které jsou chráněny před automatickým mazáním.
Nastavení konfiguračního souboru AdvancedBackups.properties
Provozní parametry zálohovacího systému jsou uloženy v souboru AdvancedBackups.properties, který se vytvoří v adresáři config při prvním spuštění. Hlavní konfigurační klíče:
Parametr | Výchozí hodnota | Popis |
| true | Umožňuje zcela zapnout (true) nebo vypnout (false) automatické vytváření záloh. |
| true | Určuje, zda je nutné svět před provedením kopírování vynuceně uložit na disk. |
| true | Vypne standardní automatické ukládání během vytváření kopie a po dokončení procesu jej znovu zapne. |
| 1048576 | Velikost vstupně-výstupní vyrovnávací paměti v bajtech. Hodnota nad limit operační paměti může způsobit pád OutOfMemoryError. |
| false | Vynucené vyprázdnění zápisové mezipaměti disku. Nepoužívá se ve verzích Minecraftu starších než 1.16. |
| true | Kontrola aktivity hráčů. Pokud na serveru nebyli od poslední zálohy žádní hráči, vytvoření kopie se přeskočí. |
| differential | Typ záloh. Možné hodnoty: zip (úplné kopie), differential (diferenciální zálohování), incremental (inkrementální zálohování). |
| session.lock,*_old | Čárkami oddělený seznam výjimek pro soubory ve složce světa, které se nepřidávají do archivu (povoleny jsou masky typu *). |
| ./backups | Cesta k adresáři pro ukládání hotových záloh (relativní nebo absolutní). |
| 0.25 | Minimální povolený interval mezi zálohami v hodinách. Zabraňuje duplikaci. 0 — vypnuto. |
| 24.0 | Maximální interval v hodinách, po kterém se záloha spustí vynuceně, pokud nebyly žádné jiné úspěšné kopie. |
| true | Základ plánovače: výpočet doby běhu serveru (true) nebo skutečný astronomický čas operačního systému (false). |
| 1:00 | Seznam intervalů vytváření kopií (například 1:00 pro hodinovou zálohu nebo přesný skutečný čas 04:00,16:00). |
| false | Vynucené vytvoření zálohy světa při zastavení nebo vypnutí serveru. Respektuje limit frequency.min. |
| false | Vytvoření zálohy světa při spuštění serveru. Respektuje limit frequency.min. |
| 30 | Zpoždění spuštění startovací zálohy v sekundách po zapnutí serveru. Minimální hodnota je 5 sekund. |
| ops | Kategorie příjemců oznámení toasts o procesu archivace ve hře (ops — operátoři, all — všichni, none — nikdo). |
| 500 | Frekvence odesílání paketů s průběhem hráčům v milisekundách. Nižší hodnoty zvyšují síťovou zátěž. |
| true | Povolení výpisu podrobného procentuálního průběhu archivace do systémové konzole serveru. |
| 5000 | Interval zaznamenávání průběhu zálohování do konzole v milisekundách. |
| 50.0 | Limit celkového objemu složky kopií v gigabajtech. Při překročení se mažou nejstarší kopie. 0 — vypnuto. |
| 0 | Doba uchovávání záloh ve dnech. Starší se mažou. 0 — vypnuto. |
| 0 | Maximální povolený počet kopií na disku. Starší se mažou. 0 — vypnuto. |
| true | Povolení mazání inkrementálních řetězců v případě mazání podle objemu. Pokud false, inkrementální kopie se nikdy nemažou. |
| 1 | Minimální počet inkrementálních řetězců, který je mazání povinno ponechat na disku za jakýchkoli okolností. |
| 4 | Úroveň komprese archivů ZIP (od 1 do 9). Vyšší hodnoty šetří místo, ale zatěžují CPU. |
| 50 | Maximální počet částečných záloh (diferenciálních/inkrementálních) před vytvořením nového úplného archivu. |
| true | Povolení komprese základních úplných kopií a následných mezilehlých kopií uvnitř řetězců. |
| true | Inteligentní reset řetězce. Pokud byly změněny všechny soubory světa, kopie se automaticky stane úplnou. |
| 50.0 | Limit velikosti částečné zálohy v procentech úplné. Při překročení se vytvoří úplná záloha. |
Příkazy pro správu zálohování
Správa modifikace se provádí pomocí konzolových příkazů, které vyžadují přístupovou úroveň operátora (možnosti příkazů byly aktualizovány ve verzi 3.7 pro lepší kompatibilitu s command blocks snížením požadavku na úroveň oprávnění na hodnotu 2):
· /backup start — spustí proces zálohování v asynchronním režimu. Příkaz zohledňuje všechna nastavení plánu, minimálních intervalů a aktivity hráčů.
· /backup force — vynuceně spustí proces kopírování a ignoruje kontroly aktivity hráčů a časové limity frequency.min.
· /backup snapshot <name> — vytvoří úplnou zálohu (snímek) pod zadaným názvem v podsložce snapshots. Tento archiv se nezohledňuje při automatickém mazání zastaralých záloh a systém jej nikdy automaticky nesmaže.
· /backup reload-config — provede opětovné načtení parametrů ze souboru AdvancedBackups.properties bez nutnosti restartovat server nebo herního klienta. Ve verzích módu do 2.2 se k tomu používá alternativní příkaz /advancedbackups reload.
· /backup check — analyzuje aktuální stav plánovače a vypíše informace o tom, kolik času zbývá do další naplánované zálohy podle plánu.
· /backup reset — resetuje čítač aktuálního řetězce inkrementálních nebo diferenciálních kopií. Další naplánovaná nebo ručně spuštěná záloha bude vynuceně vytvořena jako úplný archiv ("full").
Snížení úrovně oprávnění pro příkazy na hodnotu 2 umožňuje automatizovat vytváření kopií pomocí Command Blocks a pluginů plánovačů třetích stran, které volají konzolové příkazy jménem serveru.
Konzolový nástroj pro obnovu (Command Line Restoration)
Protože se diferenciální a inkrementální zálohy skládají z velkého počtu vzájemně propojených souborů změn, je jejich ruční obnova složitým procesem. K vyřešení tohoto úkolu je do souboru JAR modifikace vestavěn speciální konzolový nástroj.
Při prvním vytváření kopií modifikace automaticky generuje pomocné skripty v adresáři se zálohami:
· restore-bootstrap.bat pro operační systém Windows.
· restore-bootstrap.sh pro operační systémy Linux a macOS.
Tyto skripty spouštějí průvodce obnovou vestavěného v souboru JAR. Ke spuštění rozhraní obnovy ručně přes terminál se používá příkaz:
|
(název souboru JAR musí přesně odpovídat verzi nainstalovaného módu).
Konzolové rozhraní nástroje pracuje v interaktivním režimu:
1. Spuštění skenování složky záloh za účelem analýzy dostupných řetězců a snímků.
2. Zobrazení seznamu dostupných bodů obnovy s uvedením data, času a typu kopie (Full, Diff, Inc).
3. Kontrola integrity řetězce vybraného archivu. Pokud se jedná o inkrementální kopii, nástroj automaticky ověří, zda jsou přítomny všechny mezilehlé části od základní úplné zálohy až po vybraný bod.
4. Vyžádání cílové složky pro rozbalení. Nástroj provede postupné sloučení a nahrazení souborů a zrekonstruuje přesný stav světa v okamžiku vytvoření vybrané kopie.
Před zahájením obnovy je nutné zcela zastavit server Minecraft. Pokus o obnovu souborů na běžícím serveru povede k poškození databáze světa a souborů regionů (.mca).
Specifika fungování na různých platformách a optimalizace
Modifikace má architektonické rozdíly v závislosti na zvolené platformě instalace:
· Klientská oznámení toasts: Vizuální vyskakovací oznámení o začátku a dokončení vytváření zálohy jsou implementována prostřednictvím vanilla systému toasts. K jejich zobrazení na straně klienta musí být nainstalován kompatibilní mód (Forge, NeoForge nebo Fabric). Při použití módu na serverech Spigot nebo Paper klienti bez nainstalovaného módu neuvidí vizuální oznámení a obdrží pouze běžné textové zprávy v chatu, pokud to nastavení zaznamenávání umožňuje.
· Verze 1.7.10: Kvůli technickým omezením starších verzí herního enginu verze módu pro Minecraft 1.7.10 nepodporuje systém grafických oznámení toasts. Místo toho se průběh kopírování zobrazuje přímo přes herní obrazovku ve formě jednoduchého textového překryvu.
· Kontrola přidělení operační paměti: Operace asynchronní komprese vyžaduje přidělení paměťových vyrovnávacích pamětí v JVM. Pokud na serveru s omezeným množstvím RAM (například 2-4 GB) nastavíte příliš velkou hodnotu parametru config.advancedbackups.buffer (více než 10-20 MB) a vysokou úroveň komprese config.advancedbackups.zips.compression (úroveň 8-9), může to vyvolat přetečení haldy (JVM Heap) a havarijní ukončení serveru s chybou OutOfMemoryError. Pro stabilní provoz na serverech s omezenými zdroji se doporučuje zachovat standardní velikost vyrovnávací paměti 1 MB a úroveň komprese ne vyšší než 4.
Závěr
Advanced Backups je komplexní nástrojové řešení pro zajištění uchování herních světů v Minecraft Java Edition. Na rozdíl od jednoduchých alternativ typu Simple Backups nebo vanilla nástrojů umožňuje tento mód nasadit plnohodnotnou strategii zálohování s minimálními náklady na místo na disku díky využití inkrementálních řetězců. Hlavním omezením modifikace je absence vestavěných cloudových poskytovatelů pro automatické nahrávání archivů do externích úložišť (například Google Drive nebo FTP servery přímo z módu), což vyžaduje nastavení externích skriptů pro synchronizaci složky ./backups. Modifikace se doporučuje k instalaci na veřejných a soukromých serverech střední velikosti, kde je kriticky důležité zajistit ochranu před ztrátou dat bez zastavení hry.
Instalace
Typická instalace trvá asi 5 minut. Postup je stejný; liší se jen loader a odpovídající verze.
- 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.








