Startseite
Stellenmarkt
Downloads
Kontakt
  Community Center:   Forum  |  Gruppen  |  Chat  |

Zurück   Forum Fachinformatiker.de > Fachliches > Linux + Unix



Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22.11.2009, 17:50   #1
Reg.-Benutzer
 
Reg.-Datum: 13.09.2008
Standard Inteligentes Backup mittels Tar

Hallo liebe Freunde.

Ich bin mal an einem Punkt angelangt, wo mein wissen nicht ausreicht um folgendes zu realisieren.


Situation:
Ein Server mit rund 2,5 Tera Daten in unterschiedlichen grossen Unterordnern muss gesichert werden.

Problem:
Da das erstellen eines so grossen Archivs schlicht Unsinn ist, dachte ich mir, das ich versuche jeden Ordner der eine Bestimmte Grösse erreicht Separate in die entsprechenden und getrennt zu sichern, damit die archive nicht zu gross werden.

Zur Idee:
Hauptordner hat 2,5 Thera Daten
/Daten 2.5T
/Daten/Daten1 2T
/Daten/Daten2 10G
/Daten/Daten3 1G
/Daten/Daten4 400G
/Daten/Daten5 90G

Nun soll das Skript die Hautordner die eine Bestimmte Grösse 10G nicht überschreiten sichern.

Das wären dann
tar -czvf /Backup/sourcedirpfath/archiv-name-dir.tar.gz /Daten/Daten2
tar -czvf /backup/sourcedirpfath/archiv-name-dir.tar.gz /Daten/Daten3

Die Ordnern die grösser sind, sollen dabei ignoriert werden und im nächsten schritt innerhalb dieses Ordner erneut gesichert werden also.

tar -czvf /backup/sourcedirpfath/archiv-name-dir.tar.gz /Daten/Daten1/Dir1

und so weiter, damit ich am schluss eine Backup Struktur erhalte, die ordnermässig identisch ist, und innerhalb der Ordner die Tar Archive liegen wo der Source Ordner nicht grösser ist als die z.b 10G
aber dem source Direktory entspricht.

ein Problem das dabei noch ein Hindernis sein könnte ist, das diverse Ordner ein Lehrschlag enthalten.

Ich hab mal versucht anzufangen und hab mir mal das zusammen gebastelt aber halt ohne Grössen Funktion.


Code:
DATE=$(date +%m-%d-%H%M%S)
bakdir="/Daten/dir1/";
bakdirlength=${#bakdir};                            
destdir="/bdrive/dir1/";     
            

    for directory in $(find $bakdir -maxdepth 1 -mindepth 1  -type d); do
    dirname=${directory:$bakdirlength}                                   
     tar -X $exclude -czvf $destdir$dirname.tgz $directory | tee destdir$dirname.log
    done

Wie kann ich dies verwirklichen?
rabadag ist offline   Mit Zitat antworten
Alt 22.11.2009, 18:01   #2
Reg.-Benutzer
 
Reg.-Datum: 10.12.2005
Ort: Frankfurt am Main
Standard

Warum das Rad neu erfinden ?

duplicity: Main
lordy ist offline   Mit Zitat antworten
Alt 22.11.2009, 18:38   #3
Reg.-Benutzer
 
Reg.-Datum: 13.09.2008
Standard

Besten Dank..

Das Toll ist recht umfangreich.

Wie müsst ich das jetzt benutzen, damit es das macht was ich möchte, werde aus der manpage nicht wirklich schlau.
rabadag ist offline   Mit Zitat antworten
Alt 22.11.2009, 21:02   #4
Reg.-Benutzer
 
Reg.-Datum: 27.03.2007
Ort: Warstein / Dortmund
Standard

Da gibt es noch mehr von:

Bacula, the Open Source, Enterprise ready, Network Backup Tool for Linux, Unix, and Windows
Wertarbyte EDV-Dienstleistungen - Backup system "Tartarus"
__________________
#fachinformatiker.de im Internet Relay Chat | semper fidelis IT!

http://wiki.lupo49.de/ | Hardwarebörse | Rechtsschreibuhng ist wihctig!

Defektes Thinkpad T41p abzugeben? PN bitte.
lupo49 ist offline   Mit Zitat antworten
Alt 23.11.2009, 15:31   #5
Reg.-Benutzer
 
Reg.-Datum: 13.09.2008
Standard

Besten Dank für die links..

Leider aber sind die Progis für mein vorhaben zu umfangreich und das was ich wirklich brauche nicht möglich ist.

Ich hab mir jetzt mal ein script zusammen gebaut das schon ganz gut funktioniert.

Muss da nur noch ein 2 Dinge lösen wo ich euch nochmals um Hilfe bitte.


Mein Script:
Code:
#!/bin/sh                               



bakdir="/Daten";
destdir="/bdrive/test1";               
excludelog="/bdrive/exclude.log";      
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 existiert nicht Ich erstelle ihn jetzt"
        mkdir "$destdir/$destfolder"                                                        
sleep 1                                                                                     
fi                                                                                          

## Suche nach Unterordnern 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 Ordner 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 existiert 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

Funktion
1.
Suche nach Ordnern kleiner 4Gb und erstelle Ordner Struktur auf Backup Dir. maxdepth -1

2.
Suche Ordner grösser 4Gb und erstelle Ordner Struktur auf Backup dir
Maxdepth -1

3.
Suche nach Daten die im entsprechenden Ordner die <=4G sind und sichere sie nach Backup Dir Unterordner. find $1 maxdepth 0 -type -f

4.
Sichere Unterordner die im entsprechenden Hauptordner <=4G liegen und sichere sie nach Backup Dir Unterordner.

5. Fehlt noch.
Die letzte Funktion kriege ich nicht hin..
Es sollte nun für jeden Ordner der grösser ist als 4GB Punkt 1 - 5 wider holden.

schleife--
All so Ordner anlegen >=4GB, erneut im Source Unterordner suchen die grösser als 4Gb sind, Unterordner anlegen, Alle Ordner sichern die kleiner 4Gb sind. und so weiter,, bis der ganze Pfad gesichert ist.
schleife ende --
rabadag ist offline   Mit Zitat antworten
Antwort

Lesezeichen
Zurück   Forum Fachinformatiker.de > Fachliches > Linux + Unix

Themen-Optionen
Ansicht


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hilfe bei Backup Exec System Recovery Server Edition Killamp Anwendungssoftware 0 13.10.2009 14:01
CMS Typo3 Full Backup Vitali88 Webdesign 0 30.09.2009 16:05
Abschlussprojekt: Backup Skygge Abschlussprojekte 8 07.10.2008 13:24
[Hilfe] Probleme bei ShellSskript für Backup noxy88 Linux + Unix 1 26.09.2008 10:07
iPAQ Backup automatisiert wiederherstellen Hüsi Telefonie und Mobile Devices 1 28.12.2005 13:10


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:33 Uhr.