Zum Inhalt

Linux: Backup Verzeichnis aufräumen

Das folgende Script räumt ein Verzeichnis mit alten Backups auf. Im konkreten Fall werden nur die 7 letzten Backups gespeichert, alle älteren Backups werden gelöscht. Die Anzahl läßt sich aber über die Variable maxcount steuern, wie auch der Pfad des Backupordners über folderpath.

Nützlich z.B. für Backups, die per FTP irgendwo landen, d.h. wo das eigentliche Backupprogramm keinen Zugriff (oder Überblick hat), wieviele Backups bereits vorliegen und somit die Anzahl der Backups unkontrolliert wächst.


#!/bin/bash
# Backups aufräumen.
# 10.07.2008, Dennis Wilmsmann

let maxcount=7
let counter=0
let folderpath=
/home/dwilmsmann/backups

for backupfile in $folderpath/*; do
        let counter=$counter+1
        echo $backupfile
done
echo "Backup count:" $counter
if test $counter -gt $maxcount;
        then
                echo "Too many backups, forcing deletion…"
                let newcounter=0
                for deletefile in
$folderpath/*; do
                        let newcounter=$newcounter+1
                        let temp=$counter-$maxcount
                        if test $newcounter -le $temp;
                                then
                                        rm $deletefile
                                        echo "Deleting file" $deletefile
                        fi

                done

        else
                echo "Nothing to do."
fi


Ein Beispiel:

drwxr-xr-x  2 smf-ftp psacln      4096 Jul 10 17:32 .
drwxr-x—  3 smf-ftp psaserv     4096 Jun 25 10:41 ..
-rw-r–r–  1 smf-ftp psacln  15384824 Jun 30 12:57 db13281_2008_06_30_12_52.sql.gz
-rw-r–r–  1 smf-ftp psacln  15396650 Jul  1 18:58 db13281_2008_07_01_18_52.sql.gz
-rw-r–r–  1 smf-ftp psacln  15434422 Jul  3 09:15 db13281_2008_07_03_09_10.sql.gz
-rw-r–r–  1 smf-ftp psacln  15422608 Jul  5 11:38 db13281_2008_07_05_11_33.sql.gz
-rw-r–r–  1 smf-ftp psacln  15430626 Jul  6 17:19 db13281_2008_07_06_17_14.sql.gz
-rw-r–r–  1 smf-ftp psacln  15437605 Jul  7 15:24 db13281_2008_07_07_15_19.sql.gz
-rw-r–r–  1 smf-ftp psacln  15438383 Jul  8 11:08 db13281_2008_07_08_11_03.sql.gz
-rw-r–r–  1 smf-ftp psacln  15455371 Jul 10 17:33 db13281_2008_07_10_17_27.sql.gz

Das Script liefert folgende Ausgabe:

Backup count: 8
Too many backups, forcing deletion…
Deleting file
/home/dwilmsmann/backups/db13281_2008_06_30_12_52.sql.gz

Published inInternet

Schreibe den ersten Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.