Shell Backup Script

Dieses Thema im Forum "Programmierung" wurde erstellt von oOFlaashOo, 26. September 2013.

  1. oOFlaashOo
    Offline

    oOFlaashOo

    Registriert seit:
    3. Oktober 2012
    Beiträge:
    112
    Ort:
    /home
    Minecraft:
    oOFlaashOo
    Hallo ich hab folgendes Script "geschrieben" um auf meinem Server Backups durchzuführen. Die Backups werden dann auf einen Backup Server geschoben.

    Ist das ungefähr so ok? :D
    Code (Text):
    1. #!/bin/sh
    2. date=`date '+%d-%m-%Y'`
    3. rm -R /home/marius/backup/
    4. sleep 30
    5. mkdir /home/marius/backup
    6. zip -r /home/marius/backup/${date}.zip /home/marius/minecraft/ /var/www/
    7. wait 600
    8. scp -r -P XXXX /home/marius/backup  user@server.de:/
    Nächste Frage:
    Kann ich mit Hilfe von Crontab irgendwie Backups die älter als 1 Monat sind automatisch löschen?

    Danke und Gruß
    Flaash
     
    #1
  2. Crafter6432
    Offline

    Crafter6432

    Registriert seit:
    22. Dezember 2011
    Beiträge:
    686
    Warum uploadest und löscht du den ganzen Ordner, wenn dir der Dateiname sowieso bekannt ist, alte Backups kannst du mit find löschen remote wirds etwas komplizierter. Wenn du sie Remote auch löschen wäre es am einfachsten, du mountest den Remote Ordner via fuse und benutzt find.
     
    #2
  3. oOFlaashOo
    Offline

    oOFlaashOo

    Registriert seit:
    3. Oktober 2012
    Beiträge:
    112
    Ort:
    /home
    Minecraft:
    oOFlaashOo
    Macht das einen Unterschied ob ich den Ordner lösche und neu erstelle oder ob ich die Datei lösche und eine neue erstelle?
    Ok setz mich dann mit mount mal auseinander
     
    #3
  4. Chrisliebaer
    Online

    Chrisliebaer

    Nur ganz kurz zur Sicherheit: Der Server ist aus, während das Skirpt läuft? Ansonsten kannst du die konsistenz der Daten nicht sicherstellen.
     
    #4
  5. oOFlaashOo
    Offline

    oOFlaashOo

    Registriert seit:
    3. Oktober 2012
    Beiträge:
    112
    Ort:
    /home
    Minecraft:
    oOFlaashOo
    Nein ist er bisher nicht, sollte er? Wenn ja wie kann ich dies via Shell umsetzen?
    So?:
    screen -ax XXXXXX
    stop
    "ctrl+c" (Ich habe RemoteToolkit installiert sprich bei /stop startet der Server neu)
    -------------
    backupscript
    -------------
    /xyz/start.sh
     
    #5
  6. Crafter6432
    Offline

    Crafter6432

    Registriert seit:
    22. Dezember 2011
    Beiträge:
    686
    save-off sollte ausreichen
     
    #6
  7. Chrisliebaer
    Online

    Chrisliebaer

    Nicht wirklich. Wenn du den gesamten Minecraftordner sicherst, gibt es tausend Plugins, die weiterhin auf die Festplatte schreiben.
     
    #7
  8. oOFlaashOo
    Offline

    oOFlaashOo

    Registriert seit:
    3. Oktober 2012
    Beiträge:
    112
    Ort:
    /home
    Minecraft:
    oOFlaashOo
    Einigt euch mal bitte :D
     
    #8
  9. ChristianG
    Online

    ChristianG

    #9
  10. LongPlayer
    Offline

    LongPlayer

    Registriert seit:
    16. Februar 2013
    Beiträge:
    3
    Minecraft:
    LongPlayerHD
    Ich hab mir das mal iwo kopiert: löscht automatisch backups älter als 2 wochen, macht zwar auch backups im laufenden betrieb aber ich hatte auch schon paar mal zurückgespielt und das hat immer bestens geklappt (auch mit vielen plugins), bei declare -a worlds die zu sichernden ordner eintragen (eigentlich für worlds gedacht aber ich mache damit backups von 3 verschiedenen servern

    Code (Text):
    1.  
    2. #!/bin/bash
    3. #Set these values to match your server's settings.
    4.  
    5. # Make sure you change this to the name of your world folder!
    6. # Add additional worlds by separating them with a space.
    7.  
    8. declare -a worlds=(vanilla ftb-private unleashed)
    9. backupdir=backups/
    10. ext=.zip
    11.  
    12. hdateformat=$(date '+%Y-%m-%d-%H-%M-%S')H$ext
    13. ddateformat=$(date '+%Y-%m-%d')D$ext
    14. numworlds=${#worlds[@]}
    15.  
    16.     echo "Starting multiworld backup..."
    17.  
    18.     if [ -d $backupdir ] ; then
    19.         sleep 0
    20.     else
    21.         mkdir -p $backupdir
    22.     fi
    23.  
    24.     for ((i=0;i<$numworlds;i++)); do
    25.         zip -q $backupdir$hdateformat -r ${worlds[$i]}
    26.         echo "Saving '${worlds[$i]}' to '$backupdir$hdateformat'."
    27.     done
    28.     cp $backupdir$hdateformat $backupdir$ddateformat
    29.     echo "Updated daily backup."
    30.     find $backupdir/ -name *H$ext -mmin +1440 -exec rm {} \;
    31.     find $backupdir/ -name *D$ext -mtime +14 -exec rm {} \;
    32.     echo "Removed old backups."
    33.  
    34.     echo "Backup complete."
    35.  
    36. exit 0
    37.  
     
    #10
  11. Cabraca
    Online

    Cabraca

    1. hat Chris recht. Wenn das Backup gemacht wird wenn der Server läuft können trotz /save-off fehler auftreten.
    2. frag ich mich warum du nicht rsync nutzt. So kannst du z.B. einmal die woche komplette backups machen und dann nur incrementelle.
    So sparst du neben downtime auch speicherplatz.
    3. Seh ich bei dir garkein backup der datenbank
     
    #11