markwaldhoff
13.12.05, 19:57
Hi !
Ich habe jetzt endlich geschafft ein BACKUP Skript zu schreiben, was meine Wünsche erfüllt... also fast... :rolleyes:
Das Skript legt beim ersten durchlauf eine Backup der Verzeichnisse Documents und evolution an. Bei den nächsten Durchläufen (läuft jeden Tag einmal über cron) werden nur die Änderungen in diesen Verzeichnisse als Backup angelegt... ich habe jetzt allerdings das Problem dass das Skript jeden Tag eine Backup Datei anlegt, auch wenn keine Änderungen passiert sind. Diese Dateien die eigentlich keinen Inhalt haben, sind immer 105,8 KB groß. Kann ich mein Skript irgendwie so anpassen das es kontrolliert ob die erstellte Datei kleiner als 106KB ist und diese dann löscht wenn das zutrifft ? Ich weiß nicht so richtig wie ich das realisieren bzw. abfragen soll...
Hier mein Skript:
#!/bin/bash
# Mit diesem Script werden die Verzeichnisse, die unter "DATEN" angegeben
# sind nach "ZIEL" gesichert und anschließend eine Mail über den Verlauf
# des Backups gesendet.
# belegt Variable DATUM mit dem akt. Datum
DATUM=`date +%A,%d.%m.%y`
# belegt Variable DATEN mit den Daten die gesichert werden sollen
DATEN="/home/waldhoff/Documents /home/waldhoff/evolution"
# belegt Variable ZIEL mit dem Zielverzeichniss der Backups
ZIEL="/home/waldhoff/backups"
# belegt Variable USER mit dem User, der die Statusmeldung erhalten soll
USER=waldhoff
# belegt Variable LOGFILE mit der Log, die tar schreiben soll
LOGFILE="/home/waldhoff/backup_log_$DATUM.log"
# belegt Variable EXITCODE mit dem Exit-code von tar
EXITCODE=$?
# danach entfernen wir das Logfile vom Vortag
rm /home/waldhoff/backup_log_*
# nun starten wir den Backup-Prozess
tar -cPzf $ZIEL/$DATUM.tar.gz -g $ZIEL/zeitstempel $DATEN > $LOGFILE
#festplatte mounten
mount /mnt/handy1
if [ $?=0 ]; then
echo "Verzeichnis /mnt/handy1 erfolgreich gemountet" > $LOGFILE
mv /home/waldhoff/backups/*.tar.gz /mnt/handy1/backup/
echo "Backups erfolgreich verschoben" > $LOGFILE
umount -l /mnt/handy1
echo "Verzeichnis /mnt/handy1 wurde erfolgreich entmountet" > $LOGFILE
else
echo "Verzeichnis /mnt/handy1 konnte nicht gemountet werden, Daten bleiben unter /home/waldhoff/backups und werden das nächste mal verschoben" > $LOGFILE
fi
Ich habe jetzt endlich geschafft ein BACKUP Skript zu schreiben, was meine Wünsche erfüllt... also fast... :rolleyes:
Das Skript legt beim ersten durchlauf eine Backup der Verzeichnisse Documents und evolution an. Bei den nächsten Durchläufen (läuft jeden Tag einmal über cron) werden nur die Änderungen in diesen Verzeichnisse als Backup angelegt... ich habe jetzt allerdings das Problem dass das Skript jeden Tag eine Backup Datei anlegt, auch wenn keine Änderungen passiert sind. Diese Dateien die eigentlich keinen Inhalt haben, sind immer 105,8 KB groß. Kann ich mein Skript irgendwie so anpassen das es kontrolliert ob die erstellte Datei kleiner als 106KB ist und diese dann löscht wenn das zutrifft ? Ich weiß nicht so richtig wie ich das realisieren bzw. abfragen soll...
Hier mein Skript:
#!/bin/bash
# Mit diesem Script werden die Verzeichnisse, die unter "DATEN" angegeben
# sind nach "ZIEL" gesichert und anschließend eine Mail über den Verlauf
# des Backups gesendet.
# belegt Variable DATUM mit dem akt. Datum
DATUM=`date +%A,%d.%m.%y`
# belegt Variable DATEN mit den Daten die gesichert werden sollen
DATEN="/home/waldhoff/Documents /home/waldhoff/evolution"
# belegt Variable ZIEL mit dem Zielverzeichniss der Backups
ZIEL="/home/waldhoff/backups"
# belegt Variable USER mit dem User, der die Statusmeldung erhalten soll
USER=waldhoff
# belegt Variable LOGFILE mit der Log, die tar schreiben soll
LOGFILE="/home/waldhoff/backup_log_$DATUM.log"
# belegt Variable EXITCODE mit dem Exit-code von tar
EXITCODE=$?
# danach entfernen wir das Logfile vom Vortag
rm /home/waldhoff/backup_log_*
# nun starten wir den Backup-Prozess
tar -cPzf $ZIEL/$DATUM.tar.gz -g $ZIEL/zeitstempel $DATEN > $LOGFILE
#festplatte mounten
mount /mnt/handy1
if [ $?=0 ]; then
echo "Verzeichnis /mnt/handy1 erfolgreich gemountet" > $LOGFILE
mv /home/waldhoff/backups/*.tar.gz /mnt/handy1/backup/
echo "Backups erfolgreich verschoben" > $LOGFILE
umount -l /mnt/handy1
echo "Verzeichnis /mnt/handy1 wurde erfolgreich entmountet" > $LOGFILE
else
echo "Verzeichnis /mnt/handy1 konnte nicht gemountet werden, Daten bleiben unter /home/waldhoff/backups und werden das nächste mal verschoben" > $LOGFILE
fi