
Advanced Backups — Minecraft Java Edition 1.7.10 – 1.21.4
Beroenden: · Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Minecraft-version: 1.7.10 - 1.21.4 · Mod-version: 3.7.1…
Beroenden: · Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Minecraft-version: 1.7.10 - 1.21.4 · Mod-version: 3.7.1 Standardmekanismen för säkerhetskopiering i Minecraft Java Edition har allvarliga begränsninga
Beroenden:
· Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper
· Minecraft-version: 1.7.10 - 1.21.4
· Mod-version: 3.7.1
Standardmekanismen för säkerhetskopiering i Minecraft Java Edition har allvarliga begränsningar. I vanilla-spelet skapas säkerhetskopior manuellt via menyn eller kräver att servern stoppas för att kopiera filerna. Dessa åtgärder körs i spelets huvudtråd, vilket leder till frysningar i spelet, lagg eller tillfällig otillgänglighet av servern medan gigabyte av data skrivs till disken. Dessutom skapar standardmetoden endast fullständiga kopior av världen, vilket snabbt fyller upp enheten med duplicerad data. Modifikationen Advanced Backups löser dessa problem genom att erbjuda asynkron, schemalagd säkerhetskopiering med stöd för differentiella och inkrementella komprimeringsmodeller, flexibel rensning av föråldrade arkiv och ett inbyggt verktyg för att återställa data.
Mekanismer för säkerhetskopiering: Zip, Differential och Incremental
Verktyget erbjuder tre lägen för bearbetning av världsfiler, som bestämmer balansen mellan exekveringshastighet, mängden använt diskutrymme och återställningens tillförlitlighet:
· Zip (fullständiga kopior): Principen för driften består i att arkivera hela världsmappen i en enda .zip-fil. Denna metod är den mest resurskrävande och kräver mest ledigt utrymme på enheten, eftersom varje säkerhetskopia innehåller alla filer oavsett om de har ändrats. Dess fördel är enkelheten i återställningen — det räcker med att bara packa upp den önskade filen.
· Differential (differentiell kopiering): Bygger på att skapa ett enda fullständigt basarkiv ("full") och efterföljande partiella arkiv ("partial"). De partiella arkiven registrerar endast de filer som har ändrats sedan det fullständiga basarkivet skapades. Omfattningen av de mellanliggande säkerhetskopiorna minskar avsevärt. För att återställa världens tillstånd vid en viss tidpunkt behövs endast två filer: det fullständiga basarkivet och det senaste partiella arkivet före detta datum.
· Incremental (inkrementell kopiering): Använder också konceptet med fullständiga och partiella arkiv. Varje partiellt arkiv innehåller dock endast de ändringar som har skett sedan det föregående partiella arkivet skapades. Detta minimerar belastningen på diskundersystemet och sparar maximal mängd ledigt utrymme. Nackdelen är en ökad risk för dataförlust: om bara en enda fil i kedjan av inkrementella kopior skadas blir det omöjligt att återställa de efterföljande kopiorna förrän en ny fullständig säkerhetskopia skapas. Återställningsprocessen är också den långsammaste, eftersom den kräver en sekventiell sammanslagning av hela filkedjan.
Skapandet av nya kedjor regleras av parametrarna config.advancedbackups.chains.length och config.advancedbackups.chains.maxpercent. Den första parametern bestämmer det maximala antalet partiella kopior i en kedja innan ett nytt fullständigt arkiv tvångsskapas. Den andra parametern utför en storlekskontroll: om omfattningen av de ackumulerade ändringarna i ett partiellt arkiv överstiger den inställda procentandelen av det fullständiga arkivets storlek, återställer systemet automatiskt kedjan och skapar en ny fullständig säkerhetskopia.
Systemet för automatisk rensning (Purging) och arbete med kedjor
För att förhindra att disken fylls upp har tre kriterier för automatisk borttagning av föråldrad data implementerats i modifikationen:
· Efter antalet lagringsdagar (config.advancedbackups.purge.days).
· Efter den totala storleken på säkerhetskopieringsmappen i gigabyte (config.advancedbackups.purge.size).
· Efter det totala antalet kopiefiler (config.advancedbackups.purge.count).
Vid användning av differentiella eller inkrementella kopior är borttagning av enskilda filer från en kedja omöjlig, eftersom det skulle bryta dataintegriteten. Modden arbetar med hela kedjor (chains). En kedja anses föråldrad och tas bort endast när alla dess komponenter (inklusive den fullständiga bas-säkerhetskopian och alla tillhörande partiella arkiv) uppfyller rensningskriterierna. Med parametern config.advancedbackups.purge.incrementalchains kan man ställa in det minsta antalet fullständiga kedjor som systemet är skyldigt att bevara oavsett andra rensningsbegränsningar. Användaren kan också skapa "snapshots" — dessa är statiska kopior av världen som är skyddade mot automatisk borttagning.
Konfigurera konfigurationsfilen AdvancedBackups.properties
Säkerhetskopieringssystemets driftparametrar lagras i filen AdvancedBackups.properties, som skapas i katalogen config vid första starten. De viktigaste konfigurationsnycklarna:
Parameter | Standardvärde | Beskrivning |
| true | Gör det möjligt att helt aktivera (true) eller inaktivera (false) automatiskt skapande av säkerhetskopior. |
| true | Bestämmer om världen måste tvångssparas till disken innan kopieringen utförs. |
| true | Inaktiverar den vanliga autosparfunktionen medan en kopia skapas och aktiverar den igen efter att processen är klar. |
| 1048576 | Storleken på I/O-bufferten i byte. Ett värde över RAM-gränsen kan orsaka en OutOfMemoryError-krasch. |
| false | Tvingad tömning av diskens skrivcache. Används inte i Minecraft-versioner tidigare än 1.16. |
| true | Kontroll av spelaraktivitet. Om det inte har funnits några spelare på servern sedan den senaste säkerhetskopian hoppas skapandet av en kopia över. |
| differential | Typen av säkerhetskopior. Möjliga värden: zip (fullständiga kopior), differential (differentiell kopiering), incremental (inkrementell kopiering). |
| session.lock,*_old | En kommaseparerad uteslutningslista för filer i världsmappen som inte läggs till i arkivet (masker som * är tillåtna). |
| ./backups | Sökvägen till katalogen där de färdiga säkerhetskopiorna sparas (relativ eller absolut). |
| 0.25 | Det minsta tillåtna intervallet mellan säkerhetskopior i timmar. Förhindrar duplicering. 0 — inaktiverat. |
| 24.0 | Det maximala intervallet i timmar, varefter en säkerhetskopia körs med tvång om det inte har funnits andra lyckade kopior. |
| true | Schemaläggarens grund: beräkning av serverns drifttid (true) eller den verkliga astronomiska OS-tiden (false). |
| 1:00 | En lista över intervall för att skapa kopior (till exempel 1:00 för en säkerhetskopia varje timme eller den exakta verkliga tiden 04:00,16:00). |
| false | Tvingat skapande av en säkerhetskopia av världen vid stopp eller avstängning av servern. Respekterar gränsen frequency.min. |
| false | Skapande av en säkerhetskopia av världen vid uppstart av servern. Respekterar gränsen frequency.min. |
| 30 | Fördröjningen i sekunder för att starta uppstarts-säkerhetskopian efter att servern har slagits på. Minimivärdet är 5 sekunder. |
| ops | Kategorin av mottagare av toasts-meddelanden om arkiveringsprocessen i spelet (ops — operatörer, all — alla, none — ingen). |
| 500 | Frekvensen för att skicka förloppspaket till spelare i millisekunder. Lägre värden ökar nätverksbelastningen. |
| true | Tillstånd att skriva ut detaljerat procentuellt arkiveringsförlopp till serverns systemkonsol. |
| 5000 | Intervallet för att logga säkerhetskopieringens förlopp till konsolen i millisekunder. |
| 50.0 | Gränsen för den totala storleken på kopiemappen i gigabyte. De äldsta kopiorna tas bort vid överskridande. 0 — inaktiverat. |
| 0 | Lagringsperioden för säkerhetskopior i dagar. Äldre tas bort. 0 — inaktiverat. |
| 0 | Det maximalt tillåtna antalet kopior på disken. Äldre tas bort. 0 — inaktiverat. |
| true | Tillstånd att ta bort inkrementella kedjor vid rensning efter storlek. Om false rensas inkrementella kopior aldrig. |
| 1 | Det minsta antalet inkrementella kedjor som rensningen är skyldig att lämna kvar på disken under alla omständigheter. |
| 4 | Komprimeringsnivån för ZIP-arkiv (från 1 till 9). Högre värden sparar utrymme men belastar CPU:n. |
| 50 | Det maximala antalet partiella säkerhetskopior (differentiella/inkrementella) innan ett nytt fullständigt arkiv skapas. |
| true | Tillstånd att komprimera de fullständiga baskopiorna och efterföljande mellanliggande kopior inuti kedjorna. |
| true | Intelligent återställning av kedjan. Om alla världsfiler har ändrats blir kopian automatiskt en fullständig kopia. |
| 50.0 | Storleksgränsen för en partiell säkerhetskopia i procent av den fullständiga. Om den överskrids skapas en fullständig säkerhetskopia. |
Kommandon för hantering av säkerhetskopiering
Modifikationen hanteras med hjälp av konsolkommandon som kräver operatörsåtkomstnivå (kommandoalternativen uppdaterades i version 3.7 för bättre kompatibilitet med command blocks genom att sänka kravet på behörighetsnivå till värdet 2):
· /backup start — startar säkerhetskopieringsprocessen i asynkront läge. Kommandot tar hänsyn till alla inställningar för schema, minsta intervall och spelaraktivitet.
· /backup force — startar kopieringsprocessen med tvång och ignorerar kontroller av spelaraktivitet och tidsgränserna frequency.min.
· /backup snapshot <name> — skapar en fullständig säkerhetskopia (snapshot) under det angivna namnet i undermappen snapshots. Detta arkiv tas inte med i beräkningen under den automatiska rensningen av föråldrade säkerhetskopior och tas aldrig bort automatiskt av systemet.
· /backup reload-config — läser om parametrarna från filen AdvancedBackups.properties utan att behöva starta om servern eller spelklienten. I mod-versioner före 2.2 används det alternativa kommandot /advancedbackups reload för detta.
· /backup check — analyserar schemaläggarens nuvarande tillstånd och visar information om hur lång tid som återstår till nästa schemalagda säkerhetskopia enligt schemat.
· /backup reset — återställer räknaren för den nuvarande kedjan av inkrementella eller differentiella kopior. Nästa schemalagda eller manuellt startade säkerhetskopia kommer med tvång att skapas som ett fullständigt arkiv ("full").
Att sänka behörighetsnivån för kommandon till värdet 2 gör det möjligt att automatisera skapandet av kopior med hjälp av Command Blocks och schemaläggarplugins från tredje part som anropar konsolkommandon på serverns vägnar.
Konsolverktyg för återställning (Command Line Restoration)
Eftersom differentiella och inkrementella säkerhetskopior består av ett stort antal sammankopplade ändringsfiler är det en komplex process att återställa dem manuellt. För att lösa denna uppgift är ett särskilt konsolverktyg inbyggt i modifikationens JAR-fil.
Vid det första skapandet av kopior genererar modifikationen automatiskt hjälpskript i katalogen med säkerhetskopior:
· restore-bootstrap.bat för operativsystemet Windows.
· restore-bootstrap.sh för operativsystemen Linux och macOS.
Dessa skript startar återställningsguiden som är inbyggd i JAR-filen. För att starta återställningsgränssnittet manuellt via terminalen används kommandot:
|
(JAR-filens namn måste exakt motsvara versionen av den installerade modden).
Verktygets konsolgränssnitt fungerar i interaktivt läge:
1. Start av en skanning av säkerhetskopieringsmappen för att analysera de tillgängliga kedjorna och snapshots.
2. Visning av en lista över tillgängliga återställningspunkter med angivande av datum, tid och kopietyp (Full, Diff, Inc).
3. Kontroll av integriteten hos det valda arkivets kedja. Om det är en inkrementell kopia kontrollerar verktyget automatiskt om alla mellanliggande delar från den fullständiga bas-säkerhetskopian till den valda punkten finns med.
4. Begäran om målmappen för uppackning. Verktyget utför en sekventiell sammanslagning och ersättning av filer och rekonstruerar världens exakta tillstånd vid den tidpunkt då den valda kopian skapades.
Innan återställningen påbörjas måste Minecraft-servern stoppas helt. Ett försök att återställa filer på en körande server leder till skada på världsdatabasen och regionfilerna (.mca).
Särdrag på olika plattformar och optimering
Modifikationen har arkitektoniska skillnader beroende på den valda installationsplattformen:
· Toasts-aviseringar på klientsidan: Visuella popup-aviseringar om början och slutförandet av skapandet av en säkerhetskopia är implementerade via vanilla-toasts-systemet. För att visa dem på klientsidan måste en kompatibel mod (Forge, NeoForge eller Fabric) vara installerad. Vid användning av modden på Spigot- eller Paper-servrar ser klienter utan den installerade modden inga visuella aviseringar utan får endast vanliga textmeddelanden i chatten, om detta tillåts av logginställningarna.
· Version 1.7.10: På grund av de tekniska begränsningarna i äldre versioner av spelmotorn stöder mod-versionen för Minecraft 1.7.10 inte systemet med grafiska toasts-aviseringar. I stället visas kopieringsförloppet direkt ovanpå spelskärmen i form av ett enkelt textöverlägg.
· Kontroll av RAM-tilldelning: Den asynkrona komprimeringsoperationen kräver tilldelning av minnesbuffertar i JVM:en. Om man på en server med en begränsad mängd RAM (till exempel 2-4 GB) ställer in ett för stort värde för parametern config.advancedbackups.buffer (mer än 10-20 MB) och en hög komprimeringsnivå config.advancedbackups.zips.compression (nivå 8-9), kan detta utlösa ett JVM Heap-överflöde och en nödavstängning av servern med ett OutOfMemoryError-fel. För stabil drift på servrar med begränsade resurser rekommenderas det att behålla standardbuffertstorleken på 1 MB och en komprimeringsnivå på högst 4.
Slutsats
Advanced Backups är en omfattande verktygslösning för att säkerställa bevarandet av spelvärldar i Minecraft Java Edition. Till skillnad från enkla alternativ som Simple Backups eller vanilla-verktyg gör denna mod det möjligt att införa en fullfjädrad säkerhetskopieringsstrategi med minimala kostnader för diskutrymme tack vare användningen av inkrementella kedjor. Modifikationens främsta begränsning är avsaknaden av inbyggda molnleverantörer för automatisk uppladdning av arkiv till extern lagring (till exempel Google Drive eller FTP-servrar direkt från modden), vilket kräver att man ställer in externa skript för att synkronisera mappen ./backups. Modifikationen rekommenderas för installation på offentliga och privata servrar av medelstor skala, där det är kritiskt viktigt att säkerställa skydd mot dataförlust utan att avbryta spelet.
Installation
En typisk installation tar ungefär 5 minuter. Flödet är detsamma; bara Loader och den matchande builden skiljer sig.
- 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.








