R
rabadag
Mitglied
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.
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?
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?