Komplette Ordnerstruktur automatisch kopieren (Backup)

Mepich

New Member
Hallo Community,
also ich habe einen vServer wo unter anderem Minecraft drauf läuft.
Jetzt möchte ich den kompletten Ordner "minecraft" stündlich kopieren.
Er soll aber nicht nur kopiert werden sondern als .tar archiv gepackt und nummeriert werden.

Bis jetzt habe ich Cron installiert. Habe eine backup.sh erstellt mit folgendem Inhalt:

Code:
#!/bin/bash

#Mit diesem Script wird vom Server ein Backup erstellt.
cp -r /opt/minecraft/* /opt/backup

Das kopieren funktioniert, aber er packt es nicht in ein Verzeichnis und ich muss es auch manuell starten.

Was muss ich jetzt machen?

Vielen Dank für Eure Hilfe!


Viele Grüße aus dem Münsterand
Mepich
 
Hier mal ein einfaches Backup Script das du am ende via Cronjob starten kanst::

Code:
#!/bin/bash
#Purpose = Backup of Important Data
#Created on 25-02-2016
#Author = www.raait.net
#Version 1.0

#START
TIME=`date +%b-%d-%y`               # This Command will add date in Backup File Name.
FILENAME=backup-$TIME.tar.gz    # Here i define Backup file name format.
SRCDIR=/imp-data                         # Location of Important Data Directory (Source of backup).
DESDIR=/mybackupfolder               # Destination of backup file.
tar -cpzf $DESDIR/$FILENAME $SRCDIR
#END

Dieses Script machst du Ausfürbar bsp mit chmod +x /pfad/scriptname.sh
und packst es dir als Cronjob (crontab -e).

Das Scrpt nummerriert nicht direckt aber fügt dem dateinname die uhrzeit und das datum bei damit man diese auseinnander halten kann.

Ich hoffe es hilft dir weiter!
Ansonsten schau dir mal rsync!
 
Ich denke mal, weil er genauso wenig wie ich wusste, wie man die absoluten Pfade los wird. Wie das geht steht hier:

http://stackoverflow.com/questions/...dont-store-full-absolute-paths-in-the-archive

Ich habe es bei mir mal lokal getestet. Alles innerhalb von /home/andre/Dokumente/* sind im root das Tar.

Code:
tar -czf /home/andre/`date "+minecraft_%Y__%m_%H_%M.tar.gz"` -C /home/andre/Dokumente/ .

EDIT: Die Backticks `` leiten eine Kommandosubstitution ein. D.h. es öffnet sich eine Subshell in der der Befehl ausgeführt wird und die Ausgabe stdout wird als String eingesetzt und danach wird der Rest ausgeführt (eval is evil). Alternativ kann man $(befehl) verwenden.

PS: Danke für die Frage, jetzt hab ich auch etwas gelernt.
 
Last edited by a moderator:
Hier mal ein einfaches Backup Script das du am ende via Cronjob starten kanst::

Code:
#!/bin/bash
#Purpose = Backup of Important Data
#Created on 25-02-2016
#Author = www.raait.net
#Version 1.0

#START
TIME=`date +%b-%d-%y`               # This Command will add date in Backup File Name.
FILENAME=backup-$TIME.tar.gz    # Here i define Backup file name format.
SRCDIR=/imp-data                         # Location of Important Data Directory (Source of backup).
DESDIR=/mybackupfolder               # Destination of backup file.
tar -cpzf $DESDIR/$FILENAME $SRCDIR
#END

Dieses Script machst du Ausfürbar bsp mit chmod +x /pfad/scriptname.sh
und packst es dir als Cronjob (crontab -e).

Das Scrpt nummerriert nicht direckt aber fügt dem dateinname die uhrzeit und das datum bei damit man diese auseinnander halten kann.

Ich hoffe es hilft dir weiter!
Ansonsten schau dir mal rsync!


Muss ich den TExt direkt in die crontab -e eintragen?
 
Für eine stündliche ausführung, ist das so richtig?
Also zuerst crontab -e

und dann folgendes eintragen:

Code:
0 * * * * /etc/backup.sh


und in der backup.sh steht folgendes:

Code:
#!/bin/bash
#Purpose = Backup of Important Data
#Created on 25-02-2016
#Author = www.raait.net
#Version 1.0

#START
TIME=`date +%b-%d-%y`               # This Command will add date in Backup File Name.
FILENAME=backup-$TIME.tar.gz    # Here i define Backup file name format.
SRCDIR=/opt/minecraft/                         # Location of Important Data Directory (Source of backup).
DESDIR=/opt/backup/               # Destination of backup file.
tar -cpzf $DESDIR/$FILENAME $SRCDIR
#END
 
Läuft das, zu "backuppende" Minecraft denn während des Backupvorgangs? Wenn dem so ist, könnte es durchaus sein, dass da nutzlose Backups dabei raus kommen. Ich bin kein Minecraft Experte, daher frag ich.

Wenn man es "clean" machen will, müsste man wohl Minecraft vor dem Backup stoppen, was bei stündlicher Ausführung witzlos ist.

Wieso denn überhaupt jede Stunde ein VOLLBackup? Das wird Dir innerhalb kürzester Zeit die Platte vollmüllen, das sollte klar sein.
 
Ich würde dir auch eigendlich eher ein Backup mit rsnapshot vorschlagen!

einmal ne vollsicherung und dan nur noch inkrementell.
Mir ist bei einem Minecraft Server auch schleierhaft wieso du es Stündlich sicherin wilst?!

@Thema: Backup und laufenden Minecraft
Da es keine SQL DB bsp nutzt ist es eher ungefährlich den ordner im Betrieb zu sichern
aber wie gesargt ich würde es auch nicht stündlich högstens alle 7 tage sichern.
 
Natürlich ist es Blödsinn im laufenden betrieb da minecraft, wie auch z.B. ARK, selbstverständlich eine Datenbank anlegt und ständig schreibt.
 
Last edited by a moderator:
Immerhin hat man dann ein Backup von einer kaputten DB. Besser als nichts :-D
Es ist sehr wahrscheinlich, dass auch beim sichern der Datenbank die Datenbank gerade irgendwelche Änderungen schreibt.
 
Last edited by a moderator:
Für Mincraft gibt es auch Plugins die Backups machen, im laufenden Betrieb. Auch mit Zeitstempel und viele anderen Funktionen. Diese Plugins sind extra dafür gemacht, ich würde es daher damit machen.

Ich betreibe mehrere Minecraft Server, und habe auch mit cron und scripte anfangs gearbeitet. Dabei kamen immer wieder fehlerhafte Backups raus. Deswegen mein Tipp: nimm die Plugins.

Um mehr dazu zu sagen wäre es hilfreich wenn du veräts was für ein Server es ist (Bukkit, Vanilla,..)
 
Bis jetzt gabs bei mir nie Probleme mit rsync Backups von Minecraft Server.
Es ist halt so das nicht der Status von xx Uhr kopiert wird, sondern der letzte "save". Ein "save" wird alle 15 Minuten bei mir ausgeführt. Kaputte Daten hatte ich noch nicht.
 
Hypothetisch kann das Backup aber genau dann beginnen, wenn der Save statt findet. Das wäre wohl ein eventuell kritisches Szenario.

Solange das ausgeschlossen ist, sollten Backups aber auch im Livebetrieb kein Drama sein.
 
Ja solange man weiß wann der speichert, geht das ja. Fein wäre es, wenn der Server dann selbst eine Sicherung nach dem Save durchführen würde. Da gibt es doch bestimmt Plugins für. Würde mich wundern, wenn nicht schon jemand auf die Idee gekommen ist.

EDIT; Steht ja oben :-)
 
Last edited by a moderator:
Für Mincraft gibt es auch Plugins die Backups machen, im laufenden Betrieb. Auch mit Zeitstempel und viele anderen Funktionen. Diese Plugins sind extra dafür gemacht, ich würde es daher damit machen.

Ich betreibe mehrere Minecraft Server, und habe auch mit cron und scripte anfangs gearbeitet. Dabei kamen immer wieder fehlerhafte Backups raus. Deswegen mein Tipp: nimm die Plugins.

Um mehr dazu zu sagen wäre es hilfreich wenn du veräts was für ein Server es ist (Bukkit, Vanilla,..)


Also ich habe einen Buckit 1.8 Server. Kannst du mir da ein Plugin empfehlen?
 
Back
Top