Hallo Mario
Am Sonntag, 27. Oktober 2002 23:54 schrieb Mario Duve:
>
>
> #!/bin/sh
> FILE="/backup/filelist.daily"
>
> for file in $FILE ; do
> if [ -f ${file} ]; then mv ${file} ${file}.`date -I`; fi
> done
>
> find /home -mtime -1 \! -type f -print > /backup/filelist.daily
> tar -cvz -T /backup/filelist.daily -f /backup/`date -I`.tar.gz
>
> exit 0
Das ganze macht keinen richtigen sinn weil sich in dem /home Verzeichniss eh
jeden Tag etwas ver�ndert z.B. die ~/.bash_history und noch einige mehr. Ich
bastele gerade selbst an einem Programm das auf einem Shell Skript basiert
und Verschiedene Archive und Zip tool unters�tzen soll, das Problem einer
solchen Funktion liegt darin das zuerst alle unwichtigen Dateien vom Backup
ausgeschlo�en werden m��en, dies kannst Du bei tar mit der Option -X 'DATEI'.
Ich w�rde es mal so probieren
#!/bin/sh
#
# Suche nach Dateien die in den letzten 24 Std ver�ndert wurden in /home
find /home -mtime -1 -type f 1> $$.tmp 2>> /dev/null
#
# �berr�fen ob sich etwas Ver�ndert hat
if [ -s "$$.tmp" ]
then
diff DEINEDATEI $$.tmp 1> $$.tmp1 2>> /dev/null
else
rm $$.tmp 2>> /dev/null
exit
fi
#
# DEINEDATEI mu� eine Liste der Dateien mit vollem Pathnamen sein
# (aufgebaut wie die von der find ausgabe) in der Dateien stehen die sich so
# und so ver�ndern ohne das Du ein Backup davon brauchst z.B. die bash_history
#
# Jetzt machen wir die Ausgebe von diff f�r tar lesbar
if [ -s "$$.tmp1" ]
then
awk '$1~/^>/ {print $2} 1> $$.tmp2
else
rm $$.tmp1 2>> /dev/null
exit
fi
#
# Und jetzt zum Backup
tar -cz -T $$.tmp2 -f DEINEBACKUPFILE 2> $$.tmp3
#
# DEINBACKUPFILE kannst Du hier wie oben auch mit `date -I` eintargen
#
# Zum schlu� schreiben wir uns noch eine Mail um zu sehen ob es auch geklappt
# hat
#
if [ -s "$$.tmp3" ]
then
{
echo -e "Hier die Fehlermeldung von tar:\n"
cat $$.tmp3 2>> /dev/null
} 1> $$.tmp4
mail DEINUSERNAME -s "Backup von Home mit Fehlermeldung" < $$.tmp4
else
echo "das Backup war ohne Fehler" 1> $$.tmp4
mail DEINUSERNAME -s "Backup von Home fehlerfrei" < $$.tmp4
fi
#
# DEINUSERNAME mu�t Du durch Deienen Benutzernamen ersetzen
#
# Jetzt l�schen wir noch die tempor�ren Dateien
rm $$.tm* 2>> /dev/null
#
# end of file
Die L�sung mit diff gef�llt mir zwar noch nicht so ganz aber wenn jemand eine
Idee hat das zu verbessern w�re ich daran sehr interessiert.
Gru� Kurt
--
H�ufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/
Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)