linux-l: alte dateien automatisch loeschen
Thomas Knop
t.knop at isv-gmbh.de
Di Aug 8 14:21:01 CEST 2000
On, Die, 08 Aug 2000, Tomasz Poslada wrote:
> hi,
>
> wie kann man Folgendes Problem am elegantesten loesen:
>
> aus einem Verzeichnis soll jeweils die aelteste Datei geloescht werden und
> zwar immer dann, wenn der Platz nicht mehr ausreichend ist um eine neue
> Datei in das Verzeichnis zu schreiben. Also halt nach dem FIFO-Prinzip.
>
> any ideas ?
Schnelllösung (ohne gewähr), aber könnte gehen
#!/bin/bash
# wieviele kb maximal löschen ?
MAX_DEL_KB=1000000
# das in blocks umrechnen
MAX_DEL_BLOCKS=$[$MAX_DEL_KB * 2]
# bisher nix geloescht
now=0
for f in `find . -printf "%AY%Am%Ad:%b:%p\n" | sort -r` ; do
echo $f | cut -d: -f1
size=`echo $f | cut -d: -f2`
name=`echo $f | cut -d: -f3`
now=$[$now + $size]
if test $now -gt $MAX_DEL_BLOCKS ; then
exit 0
fi
echo "loesche $name"
rm -f $name
done
Thomas
--
Thomas Knop Tel: +49-30-53433408
ISV GmbH Berlin Fax: +49-30-53433435
Am Treptower Park 75 t.knop at isv-gmbh.de
12435 Berlin http://www.isv-gmbh.de
Mehr Informationen über die Mailingliste linux-l