Ergebnis 1 bis 7 von 7
Danke Übersicht5Danke
  • 1 Beitrag von Hidden Evil
  • 1 Beitrag von bastla
  • 1 Beitrag von Hidden Evil
  • 1 Beitrag von Hidden Evil
  • 1 Beitrag von Supernature
Thema: Backup-Script für Minecraft-Server Moin Leute, ich habe mich mal heute etwas intensiver mit Batch befasst und ein Script zusammengebastelt, das per Knopfdruck den ...
  1. #1
    Die faule Ruhe selbst! motz Avatar von Hidden Evil
    Registriert seit
    21.01.02
    Ort
    Berlin
    Beiträge
    14.681

    Backup-Script für Minecraft-Server

    Moin Leute,

    ich habe mich mal heute etwas intensiver mit Batch befasst und ein Script zusammengebastelt, das per Knopfdruck den World-Ordner (oder alle 3 bei Bukkit) separat abspeichert, und zwar getrennt nach Datum und Uhrzeit. Ich hoffe, es ist für Euch eine Hilfe, ich habe es unter Win7 Home Premium getestet und für funktionierend befunden. Ebenso wurde es bereits auf dem SNF-eigenen Server ausprobiert und funktioniert tadellos.

    Der Code lautet wie folgt:
    Code:
    @echo off
    
    rem ----- Zeile 4 aus server.properties auslesen -----
    rem - Es muss in Zeile 4 der Eintrag des Weltnamens vorliegen, ansonsten "skip" anpassen!
    rem - Bei skip=3 werden 3 Zeilen übersprungen, die server.properties wird temporär ohne Zeilen 1-3
    rem - abgespeichert. Zeile 1 (Zeile 4 in der Originalversion) wird abgefragt und gespeichert.
    rem - Die temporäre Datei wird anschliessend geloescht.
    For /F "tokens=* skip=3" %%a IN (server.properties) DO echo %%a>>TEMP.txt
    set /p WORLD=<TEMP.txt
    del TEMP.txt
    
    rem ----- Eintrag splitten, damit nur Weltname uebrig bleibt -----
    rem - aus "level-name=xyz" wird "xyz" 
    for /f "tokens=2 delims== " %%a in ("%WORLD%") do set WORLD=%%a
    
    rem ----- Uhrzeit ermitteln und Trennzeichen austauschen -----
    rem - Uhrzeit wird ohne Milisekunden abgefragt und in 3 Teile geteilt. Diese werden
    rem - mit anderen Trennzeichen wieder zusammengefuegt, da Doppelpunkte unzulässig sind!
    for /f "tokens=1,2,3 delims=: " %%a in ("%time:~0,8%") do set HH=%%a&set MM=%%b&set SS=%%c
    set zeit=%HH%_%MM%_%SS%
    
    rem ----- Backup-Verzeichnisse erstellen -----
    rem - Existenz der Weltenverzeichnisse (bei Bukkit alle 3, bei Classic nur der erste) werden
    rem - geprueft und Backup-Verzeichnisse erstellt. Unterteilt in Datum\Uhrzeit\Teilwelt
    if exist %WORLD%         md BACKUP\%DATE%\%zeit%\%WORLD%
    if exist %WORLD%_nether  md BACKUP\%DATE%\%zeit%\%WORLD%_nether
    if exist %WORLD%_the_end md BACKUP\%DATE%\%zeit%\%WORLD%_the_end
    
    rem ----- Welt-Verzeichnisse von Bukkit in Backup-Verzeichnisse kopieren -----
    rem - Sofern die Weltenverzeichnisse existieren wird der gesamte Inhalt in
    rem - die zuvor erstellten Backup-Verzeichnisse kopiert.
    if exist %WORLD%         xcopy %WORLD%         BACKUP\%DATE%\%zeit%\%WORLD%\ /Y /E /S /Q
    if exist %WORLD%_nether  xcopy %WORLD%_nether  BACKUP\%DATE%\%zeit%\%WORLD%_nether\ /Y /E /S /Q
    if exist %WORLD%_the_end xcopy %WORLD%_the_end BACKUP\%DATE%\%zeit%\%WORLD%_the_end\ /Y /E /S /Q


    Version 2 mit 24-Stunden-Takt-Backup:
    Code:
    @echo off
    title MC-Auto-Backup
    :start
    rem ----- Zeile 4 aus server.properties auslesen -----
    rem - Es muss in Zeile 4 der Eintrag des Weltnamens vorliegen, ansonsten "skip" anpassen!
    rem - Bei skip=3 werden 3 Zeilen übersprungen, die server.properties wird temporär ohne Zeilen 1-3
    rem - abgespeichert. Zeile 1 (Zeile 4 in der Originalversion) wird abgefragt und gespeichert.
    rem - Die temporäre Datei wird anschliessend geloescht.
    For /F "tokens=* skip=3" %%a IN (server.properties) DO echo %%a>>TEMP.txt
    set /p WORLD=<TEMP.txt
    del TEMP.txt
    
    rem ----- Eintrag splitten, damit nur Weltname uebrig bleibt -----
    rem - aus "level-name=xyz" wird "xyz" 
    for /f "tokens=2 delims== " %%a in ("%WORLD%") do set WORLD=%%a
    
    rem ----- Uhrzeit ermitteln und Trennzeichen austauschen -----
    rem - Uhrzeit wird ohne Milisekunden abgefragt und in 3 Teile geteilt. Diese werden
    rem - mit anderen Trennzeichen wieder zusammengefuegt, da Doppelpunkte unzulässig sind!
    for /f "tokens=1,2,3 delims=: " %%a in ("%time:~0,8%") do set HH=%%a&set MM=%%b&set SS=%%c
    set zeit=%HH%_%MM%_%SS%
    
    rem ----- Backup-Verzeichnisse erstellen -----
    rem - Existenz der Weltenverzeichnisse (bei Bukkit alle 3, bei Classic nur der erste) werden
    rem - geprueft und Backup-Verzeichnisse erstellt. Unterteilt in Datum\Uhrzeit\Teilwelt
    if exist %WORLD%         md BACKUP\%DATE%\%zeit%\%WORLD%
    if exist %WORLD%_nether  md BACKUP\%DATE%\%zeit%\%WORLD%_nether
    if exist %WORLD%_the_end md BACKUP\%DATE%\%zeit%\%WORLD%_the_end
    
    rem ----- Welt-Verzeichnisse von Bukkit in Backup-Verzeichnisse kopieren -----
    rem - Sofern die Weltenverzeichnisse existieren wird der gesamte Inhalt in
    rem - die zuvor erstellten Backup-Verzeichnisse kopiert.
    if exist %WORLD%         xcopy %WORLD%         BACKUP\%DATE%\%zeit%\%WORLD%\ /Y /E /S /Q
    if exist %WORLD%_nether  xcopy %WORLD%_nether  BACKUP\%DATE%\%zeit%\%WORLD%_nether\ /Y /E /S /Q
    if exist %WORLD%_the_end xcopy %WORLD%_the_end BACKUP\%DATE%\%zeit%\%WORLD%_the_end\ /Y /E /S /Q
    
    echo Backup erledigt - %DATE% - %time:~0,8%
    echo ---------------------------------------
    
    ping 127.0.0.1 /n 1 /w 86400000 > nul
    
    goto start


    Es wird die server.properties ausgelesen, um den Namen der World festzustellen, damit die Verzeichnisse entsprechend erfasst und kopiert werden können. Wichtig hierbei ist nur, dass der Eintrag des World-Namens in Zeile 4 Stehen muss, andernfalls ist wie im Code beschrieben der Eintrag zu ändern.

    Der Rest geschieht völlig automatisch. Es wird ein Verzeichnis namens "BACKUP" erstellt, in welches erst nach Datum getrennt wird und während des selben Tages als Unterverzeichnis nach der Uhrzeit.
    Geändert von Hidden Evil (18.02.12 um 21:56 Uhr) Grund: Neue Version mit 24-Stunden-Takt hinzugefügt
    bastla bedankt sich.

  2.   Anzeige

     
  3. #2
    mit bastla_Assi Avatar von bastla
    Registriert seit
    24.07.10
    Ort
    Roter Planet 2.0
    Beiträge
    1.367

    AW: Backup-Script für Minecraft-Server

    Das ganze jetzt noch in Java und dann als Bukkit-Plugin .

    Danke dafür, ist bei eigenen Server bestimmt sehr nützlich !
    Jetzt bräuchte man nur noch ein Script, dass dieses Script alle 60 Minuten aufruft .

    Gruß
    bastla
    Hidden Evil bedankt sich.

  4. #3
    Die faule Ruhe selbst! motz Avatar von Hidden Evil
    Registriert seit
    21.01.02
    Ort
    Berlin
    Beiträge
    14.681

    AW: Backup-Script für Minecraft-Server

    Zitat Zitat von bastla Beitrag anzeigen
    Jetzt bräuchte man nur noch ein Script, dass dieses Script alle 60 Minuten aufruft .
    Lässt sich mit Batch sogar machen, soweit ich weiß, jedoch sind meine Kenntnisse noch arg begrenzt. Aber ich möchte nur ungern neben dem so schon hardwarehungrigen MC-Server ein extra Backupscript permanent auf Supis Kiste laufen lassen. Mal sehen, ob ich das recourcenschonend hinbekomme

    EDIT:
    Ich habe eine 2. Version mit automatischem 24-Stunden-Backup hinzugefügt.
    Geändert von Hidden Evil (18.02.12 um 21:58 Uhr)
    bastla bedankt sich.

  5. #4
    mit bastla_Assi Avatar von bastla
    Registriert seit
    24.07.10
    Ort
    Roter Planet 2.0
    Beiträge
    1.367

    AW: Backup-Script für Minecraft-Server

    ot:
    Alternativ hätte man auch 86400000 Ping-Anfragen senden können - nur ob der Server dann noch stabil, läuft ist eine andere Sache

  6. #5
    Die faule Ruhe selbst! motz Avatar von Hidden Evil
    Registriert seit
    21.01.02
    Ort
    Berlin
    Beiträge
    14.681

    AW: Backup-Script für Minecraft-Server

    Zitat Zitat von bastla Beitrag anzeigen
    ot:
    Alternativ hätte man auch 86400000 Ping-Anfragen senden können - nur ob der Server dann noch stabil, läuft ist eine andere Sache
    Nö, dann wären es 86400 Ping-Anfragen, denn ein Ping dauert 1 Sekunde. Eine Ping-Wartezeit wird aber in Milisekunden gemessen
    bastla bedankt sich.

  7. #6
    mit bastla_Assi Avatar von bastla
    Registriert seit
    24.07.10
    Ort
    Roter Planet 2.0
    Beiträge
    1.367

    AW: Backup-Script für Minecraft-Server

    Ich seh trotzdem noch schwarz für die arme Kiste, auf der das Script laufen muss, wenn so viele Pings auf ihr abgefeuert werden

  8. #7
    Und jetzt? Avatar von Supernature
    Registriert seit
    24.02.01
    Ort
    Großherzogtum Baden
    Beiträge
    50.766

    AW: Backup-Script für Minecraft-Server

    Einen Ping pro Sekunde verkraftet sogar ein 386er ohne merklichen Performance-Einbruch, das sollte kein Problem sein.
    Ich hätte da schon eher Angst, dass das Script irgendwann abstirbt und ich es erst eine Woche später merke - genau dann, wenn ich das Backup von Gestern dringend brauche und feststelle, dass es nicht da ist.
    Sinnvoller wäre es in einem solchen Fall, die Aufgabenplanung von Windows zu verwenden, um das Script alle 24 Stunden starten zu lassen.
    Dann muss ich z.B. auch nach einem Neustart nicht mehr daran denken.
    bastla bedankt sich.

Ähnliche Themen

  1. Antworten: 26
    Letzter Beitrag: 02.02.12, 21:40
  2. Minecraft Portable + Bukkit-Server starten?
    Von o0Pascal0o im Forum Minecraft
    Antworten: 21
    Letzter Beitrag: 17.01.12, 21:33
  3. [Minecraft] Bukkit Server erstellen
    Von bastla im Forum Tutorials & Tipps
    Antworten: 11
    Letzter Beitrag: 14.10.11, 21:38
  4. [Server] Hilfe für ein Bash-Script gesucht
    Von SoKoBaN im Forum Alles rund um Linux
    Antworten: 8
    Letzter Beitrag: 05.08.04, 18:30
  5. Script fuer G6 Bullet Proof server FTP
    Von Boogy im Forum BPFTP-Server 2.x
    Antworten: 1
    Letzter Beitrag: 19.05.02, 11:08

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Search Engine Friendly URLs by vBSEO ©2011, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53