Allgemeines Bash-Problem:
Ich hab ein Backupscript geschrieben.
Bisher war das auch ganz brauchbar.
unter /backup ist eine Wechselplatte gemountet.
Ich will jetzt jedoch plattenoptimierter arbeiten.
Bisher wurden die letzten 60 Dateien aufgehoben.
Nun sollen die aeltesten Dateien geloescht werden, wenn der Plattenplatz knapp wird.
Hab das Script mal um diverse Dirs gekuerzt, da sonst beim Testen zu viel Muell produziert wird.
Bisheriger Quellcode:
#!/bin/bash
# beste idee ist wohl, zu schauen, alle Dateien, die aelter als 60 Tage sind,
# zu entsorgen
find /backup -mtime +60 -exec rm {} \;
datum=$(date +%Y%m%d) # das Datum Jahr-Monat-Tag
wochentag=$(date +%u) # der Wochentag (als Zahl, 7=Sonntag)
cd /backup
if [ $wochentag -eq 7 ]; then # Sonntags eine Komplettsicherung
rm backup.log
tar -cfz backup-full-$datum.tgz -g backup.log /etc 2>/tmp/backup.$$
fehler=$?
cp backup.log backup-full-$datum.log
else # jeden anderen Tag nur ein inkrementelles Backup
tar -cfz backup-inc-$datum.tgz -g backup.log /etc 2>/tmp/backup.$$
fehler=$?
cp backup.log backup-inc-$datum.log
fi
# falls ein Fehler auftaucht: Mail an Root
if [ $fehler -ne 0 ]; then
cat /tmp/backup.$$ |mail -s "BACKUP: FEHLER IN DER DATENSICHERUNG" root
fi
# die temporaeren Dateien entfernen
rm /tmp/backup.$$
Danke fuer die Hilfen
gralkor Gast |