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