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
Schreibe den ersten Kommentar