Backup1

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von flugopa, 12.01.2007.

  1. #1 flugopa, 12.01.2007
    flugopa

    flugopa Der lernwillige

    Dabei seit:
    27.05.2006
    Beiträge:
    739
    Zustimmungen:
    0
    Ort:
    München
    Hallo,

    hier mal mein erstes Backupskript (um ein paar Einstellungen zu sichern).
    Weil ich immer noch Anfänger bin, könntet Ihr vielleicht mir einige Tips zur
    Verbesserung des Backupscript geben?

    Gibt es unter Linux so etwas wie eine Snapshot unter VMware?
    Evtl. sollte man Linux aufsetzen ... dann VMware dann nochmal Linux drauf ??
    Was meint Ihr?


    Hier nun das Skript:

    #!/bin/sh
    DATUM=$(date +%d)

    # Ja, es soll immer mit dem aktuellen Datum überschrieben werden, weil sich
    # noch kein Linux die 30Tage Lebensgrenze überstanden hat. Anfänger eben.
    echo -e "\n\n\tTagessicherung"

    if [ ! -d /home/BACKUP ] ; then
    mkdir -p /home/BACKUP
    fi

    if [ ! -d /home/BACKUP/$DATUM ] ; then
    mkdir -p /home/BACKUP/$DATUM
    fi

    tar -cjf /home/BACKUP/$DATUM/$DATUM.bz2 /etc /TOOLS
    echo -e "\n\tZip erstellt\n---------------------------------------------\n\n"

    if [ ! -d /temp ]; then
    mkdir -p /temp
    fi

    mount -t cifs //XP/BACKUP /temp -o user=username%password
    cp /home/BACKUP/$DATUM/$DATUM.bz2 /temp
    umount /temp
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Zico

    Zico Lebende Foren Legende

    Dabei seit:
    16.04.2004
    Beiträge:
    1.559
    Zustimmungen:
    0
    Hast du dir schonmal "rsync" angeschaut? Ich denke damit kannst du fast alles aus deinem Script mit einer Zeile realisieren.
     
  4. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Allerdings koennte es Probleme geben, wenn das unterliegende Dateisystem (cifs ueber ntfs ??) die Attribute des Linux-Systems nicht unterstuetzt.

    @flugopa:
    Wenn Du genuegend Platz hast, ist das wohl ein ausreichendes Skript. Vielleicht solltest Du noch geschweifte Klammern um die Variablennamen setzen (obwohl die bash den '.' in $DATUM.tar.bz2 offenbar als Grenze erkennt). Ausserdem wuerde ich das Skript noch erweitern, indem ich die Zielpartition aushaengte, wiedereinhaengte und dann die Pruefsummen der beiden Dateien vergliche (md5sum, sha1sum, etc.).
     
  5. #4 flugopa, 12.01.2007
    flugopa

    flugopa Der lernwillige

    Dabei seit:
    27.05.2006
    Beiträge:
    739
    Zustimmungen:
    0
    Ort:
    München

    Hallo Rikola,

    danke für Deine Anregung. Leider funktioniert etwas nicht.

    # beide Prüfsummen sind identisch... trotzdem wird error gemeldet.Hm?


    #!/bin/sh
    clear
    DATUM=$(date +%d)

    echo -e "\n\n\tTagessicherung"
    if [ ! -d /home/BACKUP ] ; then
    mkdir -p /home/BACKUP
    fi
    if [ ! -d /home/BACKUP/$DATUM ] ; then
    mkdir -p /home/BACKUP/$DATUM
    fi

    tar -cjf /home/BACKUP/$DATUM/$DATUM.bz2 /etc /TOOLS
    echo -e "\n\tZip erstellt\n---------------------------------------------\n\n"

    if [ ! -d /temp ]; then
    mkdir -p /temp
    fi

    mount -t cifs //pc2400/BACKUP /temp -o user=username%passwd
    cp /home/BACKUP/$DATUM/$DATUM.bz2 /temp
    umount /temp

    mount -t cifs //pc2400/BACKUP /temp -o user=username%passwd
    if [ 'md5sum /home/BACKUP/$DATUM/$DATUM.bz2' != 'md5sum /temp/$DATUM.bz2' ]; then
    echo -e "\n\tError"

    md5sum /home/BACKUP/$DATUM/$DATUM.bz2
    md5sum /temp/$DATUM.bz2
    # beide Prüfsummen sind identisch... trotzdem wird error gemeldet.Hm?
    read pause
    fi
    umount /temp
    exit 0



    Wer hat noch eine Idee?
     
  6. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Du vergleichst Zeichenketten, nicht die Resultate. Vermutlich wolltest Du backticks (`) benutzen statt ('). Versuche es mal mit
    Code:
    if [ $(md5sum /home/BACKUP/$DATUM/$DATUM.bz2 | awk '{print $1}') != $(md5sum /temp/$DATUM.bz2 | awk '{print $1}') ]; then
    
     
  7. #6 flugopa, 12.01.2007
    flugopa

    flugopa Der lernwillige

    Dabei seit:
    27.05.2006
    Beiträge:
    739
    Zustimmungen:
    0
    Ort:
    München
    Das ist die Lösung. Es funktioniert.

    Nun würde ich gern noch das lokale Zip-File (Backupdatei) löschen wenn weniger als 15% Plattenplatz vorhanden ist.
    Zerlegen der Ausgabe "df -H"?

    Was meinst Du?
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Backup1