Backup spezial Script.

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von rabadag, 29.11.2009.

  1. #1 rabadag, 29.11.2009
    rabadag

    rabadag Mitglied

    Dabei seit:
    21.05.2005
    Beiträge:
    30
    Zustimmungen:
    0
    Hallo Liebe Freunde.

    Stehe mal wider vor einem prob, wo ihr mir sicherlich weiterhelfen könnt.

    Funktions- beschrieb:

    1. Skript erstelle für jeden gefundenen Order im Source Root einen im Backupdir.

    2. Es wird geprüft ob der Inhalt des Ordners nicht grösser 4Gb ist.

    3. Order die nicht grösser sind als 4GB werden mit Tar gesichert.

    4. Geht noch nicht..
    Die Ordner die grösser 4GB sind, sollen separat getrennt behandelt werden und die Unterordner im Backup dir erstellen. Die Unterordner die kleiner sind sichern und so weiter.

    Code:
    #!/bin/sh 
    
    
    
    bakdir="/Daten/shares/";
    destdir="/bdrive/test1"; 
    excludelog="/bdrive/exclude.log";
    #for directory in $(find $bakdir -type d); do
    
    rm "/bdrive/exclude.log";
            
            
    ### Finde alle Ordner
    find $bakdir -maxdepth 1 -mindepth 1 -type d | while read directory 
    do
    echo "suche in  $directory"
    sleep 1
    SIZE=`du -s "$directory" | cut -f 1`
    
    ## Teste auf grösse des Ordners
    if [ $SIZE -gt 4331580 ]
    then
    	   
               echo "Ordner ist zu gross $SIZE"
               #touch "$excludlog"
               #echo $directory >> $excludelog
    	    destfolder=`basename "${directory}"`                                                                                                          
    	    echo "Speichere nach $destdir/$destfolder"
    sleep 1
    
    ## Erstelle Destination Ordner
    if [ -d "$destdir/$destfolder" ]    
    then                                
        echo "stepp 1 Ordner $destdir/$destfolder ok"
        sleep 1                                              
    else                                                 
        echo "Stepp 1 Ordner exisiert nicht Ich erstlle ihn"
        mkdir "$destdir/$destfolder"                    
    sleep 1                                                 
    fi 
    
    else
    
    
    
    destfolder=`basename "${directory}"`
        
    ### Erstelle Destination Ordner
    if [ -d "$destdir/$destfolder" ]
    then
    	echo "stepp 1 Destination Ordner $destdir/$destfolder vorhanden"
    sleep 1
    else
        echo "Stepp 1 Destination Ordner $dest/$destfolder exisiert nicht Ich erstlle ihn jetzt"
    	mkdir "$destdir/$destfolder"
    sleep 1
    fi
    
    ## Suche nach unterordner die Archiviert werden
    find "$directory" -maxdepth 1 -mindepth 1 -type d | while read folder
    do
        	    VNAME=`basename "${folder}"`
    	    destfolder=`basename "${directory}"`
    
    ## Teste erneut ob Destination folder Existiert und Starte Sicherung
    if [ -d "$destdir/$destfolder" ]
    then
    
    echo " stepp 2 Destination Ordner $dest/$destfolder vorhanden"
    sleep 1
    find "$directory" -maxdepth 1 -type f -print | tar -czvf "$destdir/$destfolder/rootdir.tgz" -T -
    
    tar -czvf "$destdir/$destfolder/$VNAME.tgz" "$folder" | tee "$destdir/$destfolder/$VNAME.log" 
    
    else
    echo "stepp 2 Destination Ordner $dest/$destfolder exisiert nicht erstelle ihn jetzt"
    mkdir "$destdir/$destfolder"
    touch "$destdir/$destfolder/$FNAME.else"
    tar -czvf "$destdir/$destfolder/$VNAME.tgz" "$folder" | tee "$destdir/$destfolder/$VNAME.log"
    fi
    
    done
    
    fi
    
    done
    
    

    Was mein Problem ist, das es bis an hin nur in der ersten ebene des Root Folders Funktioniert. die Order die Grösser sind, werden zwar erstellte aber die Unterordnern nicht gesichert die kleiner sind als 4GB. Das ganze sollte aber rekursive Funktionieren.

    Wie kann ich das machen?
     
  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. #2 tuxlover, 30.11.2009
    Zuletzt bearbeitet: 30.11.2009
    tuxlover

    tuxlover Der den Tux knuddelt

    Dabei seit:
    26.10.2005
    Beiträge:
    2.106
    Zustimmungen:
    0
    Ort:
    berlin
    vielleicht kannst du mit df -h prüfen ob ein ordner entsprechend groß ist. und wenn ja, entpsrechendes ausführen. wird ein bisschen häßlich werden, weil du zunächst prüfen musst ob der letzte Buchstabe ein G ist. und dann noch ob größer als 4.

    das wäre jetzt meine erste idee dazu.
    teil zwei könnte etwa so gehen:

    Code:
    MAX_SIZE=4
    SIZE=$(df -h|tail -1)
    
    has_maxsize()
    {
    if [ SIZE -le MAX_SIZE ]
      then
           dosomething...
      else
          dosomething else
    fi
    }
    
     
  4. T-One

    T-One Routinier

    Dabei seit:
    14.10.2008
    Beiträge:
    478
    Zustimmungen:
    3
    Ort:
    Österreich
    ich kapiere hier die Abfrage nach der größe nicht wirklich, warum sicherst du nicht einfach alles und splittest einfach die Archive? So ist es ja doch recht schwer herauszufinden ob er jetzt etwas aus versehen, z.b. wegen einem falsch abgelegten DVD-Image, oder wegen sonstwas einfach nicht gesicher hat....
     
  5. #4 rabadag, 01.12.2009
    rabadag

    rabadag Mitglied

    Dabei seit:
    21.05.2005
    Beiträge:
    30
    Zustimmungen:
    0
    Der grund warum ich das so haben muss ist, weil das Ganze dir im moment 4Tb gross ist wächst aber täglich um 100Gb an. Aauch wenn ich das splite, ist eine allfällige widerherstellung seehr aufwendig und Zeit intensive anhand der Grösse des Archives.

    Um schnellst möglich Daten und Verzeichnisse wider herzustellen sind kleine Archive ideal.

    So soll das script rekursive Verzeichnisse sichern die kleiner sind als 4Gb oder auch 10GB. jenachdem was ideal ist.

    Die anderen Verzeichnisse die grösser sind rekrursive sichern also widerum die subfolder sichern die kleienr sind als 4GB. Bis dann der Ganze Pfad gesichert ist.

    "tuxlover"
    Die Grösse herauszufinden ist nicht das prob. das hab ich bereits gelöst.

    Veranschauung.

    Schritt1
    #/dir
    40Gb order1 --> gehe in unterorner (Schritt2)
    3Gb order2 --> sichere
    1GB order3 --> sichere

    Schritt2
    200Mb order1/sub1 --> sichere
    800MB order1/sub2 --> sichere
    29GB order1/sub3 --> gehe in Unterordner und widerhole Schritt2
    10GB order1/sub4 --> gehe in Unterordner und widerhole Schritt2
     
  6. daboss

    daboss Keine Macht für niemand!

    Dabei seit:
    05.01.2007
    Beiträge:
    1.294
    Zustimmungen:
    0
    Ort:
    sydney.australia.world
    Hm, irgendwie erschließt sich mir der Sinn immer noch nicht... ob du's jetzt Unterordnerweise machst oder gleich richtig....
     
  7. T-One

    T-One Routinier

    Dabei seit:
    14.10.2008
    Beiträge:
    478
    Zustimmungen:
    3
    Ort:
    Österreich
    Ist ja gut und recht aber dann stellt sich mir die nächste Frage warum du nicht eine ordentliche Backupsoftware verwendest die dir Indexes der Archive usw. erstellt, zb. bacula?
    IMHO wird bei der Datenmänge doch recht schnell der überblick verloren....
     
  8. Anzeige

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

Backup spezial Script.

Die Seite wird geladen...

Backup spezial Script. - Ähnliche Themen

  1. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  2. Entwicklung von »Arkeia Network Backup« eingestellt

    Entwicklung von »Arkeia Network Backup« eingestellt: Nachdem die Backup-Lösung »Arkeia Network Backup« bereits seit geraumer Zeit nicht mehr an Neukunden ausgeliefert wird, steht nun fest, dass die...
  3. Backup Alternative zu CloneZilla

    Backup Alternative zu CloneZilla: Moin, bin im Moment auf der Suche nach ner verlässlichen alternative für vollständige Plattenbackups. Leider meldet clonezilla immer wieder...
  4. Projekt Backup Server

    Projekt Backup Server: Ich bekomme Gehäuse Supermicro CSE-846A-R900B Motherboard Supermicro X10SLM-F Intel Xeon E3 1230V3 2x8GB Kings. DDR3 1600MHz...
  5. Kurztipp: CloudSync - Backup privater Daten in der Cloud

    Kurztipp: CloudSync - Backup privater Daten in der Cloud: CloudSync ist ein Programm speziell zum sicheren Backup privater Daten in der Cloud. Hier beschreibt der Autor die Motivation und den aktuellen...