Mailboxgröße überwachen

Datum: 2001-08-09
Quelle: suse-linux

Worum ging es?

Die folgenden Scripts kontrollieren die Größe der Mailboxen aller Benutzer eines Systems und schicken ihnen eine nette Mail, wenn die Mailbox einen konfigurierbaren Wert überschreitet.
Im Code ist ein Ansatz mit bash-Mitteln und einer in Perl zu sehen.

Code
# bash
max_size=1024k
find /var/spool/mail -type f -size +$max_size -print | \
  while read fname; do
    echo -e "your mailbox size has exceeded\n\nYour postmaster" | \
      mail -s "Postmaster alert" `basename $fname`
  done

# perl
opendir MDIR, "/var/spool/mail" or die "error $!\n";
my @boxes = readdir MDIR;
my $max_size = 1024 * 1024;
foreach (@boxes) {
  unless (/^\.{1,2}$/) {
    system("echo 'mail box size exceeded' | mail -s 'Postmaster alert' $_")
      if (stat("/var/spool/mail/" . $_))[7] > $max_size;
  }
}
closedir MDIR;
Beschreibung

Die Scripts gehen von der Standard-Konfiguration auf vielen Systemen aus, dass sich die Mailboxen der Benutzer unter /var/spool/mail befinden und genauso heißen wie der Benutzer. Die Scripts sind als Beispiel zu sehen, Fehlerhandling und Tests sollten noch folgen.