Vieleicht ist es Ihnen schon einmal passiert: Ihr Linux-Server tut nicht mehr was er soll, weil er keinen Platz mehr auf seiner Festplatte hat und niemand hat Sie gewarnt. Mit Hilfe der Kommandos df, awk und crontab ist es aber sehr leicht, ein System zu entwickeln, das regelmässig den freien Platz Ihrer Festplatten kontrolliert und ggfls. eine Mail an den Administrator verschickt.
Das Kommando df zeigt u.a. die Größe der Festplatte und den freien Platz.
Ausgabe des Kommandos df :
Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda3 38667264 6028196 32639068 16% / /dev/hda1 23302 5839 16260 27% /boot /dev/hdb1 44177360 28968768 15208592 66% /bigdrive/part1 /dev/hdb2 44177392 16059508 28117884 37% /bigdrive/part2 /dev/hdb3 44177392 14690536 29486856 34% /bigdrive/part3 /dev/hdb4 48402360 32840 48369520 1% /bigdrive/part4 shmfs 127944 0 127944 0% /dev/shm /dev/hdc 296884 296884 0 100% /media/dvd
Mit Hilfe des folgenden awk-Skript können Sie in der Ausgabe von df die Zeilen, von Festplatten, die weniger als 25% freien Platz bieten, suchen. Die ersten beiden Zeilen filtern die Überschrift und das DVD-Laufwerk heraus. Sie müssen ggfls. den Gerätetreiber Ihres CD-ROMs bzw. DVD anpassen. Die dritte Zeile gibt nun für jedes überbelegte Laufwerk einen Warntext aus.
/Use%/ { next }
/hdc/ { next }
$4*100/$2*1024<25 { print "File System", $1, "on", $6, $5, "used" }
Das folgende sh-Skript ruft nun die Kommandos df und awk zusammen mit dem awk-Skript auf.
#/bin/sh /bin/df | /usr/bin/gawk -f /root/bin/df.awk
Jetzt müssen Sie nur noch cron anweisen, das Skript regelmässig aufzurufen. Wenn das Skript eine Ausgabe ergibt, was der Fall
ist, wenn ein überbelegtes Laufwerk gefunden wird, wird der Text per Mail an den Administrator geschickt.
crontab-Eintrag zum Aufruf des Skripts:
# check free space on file system 0 2 * * * $HOME/bin/df.sh
© 2005 by CRESD GmbH / München Impressum