On Don, 09 Aug 2001, fabian huesser wrote:
Am Mittwoch, 8. August 2001 21.57 schrieb Jan Trippler:
#! /usr/local/bin/perl -w foreach (@boxes) { unless (/^\.{1,2}$/) { system ("echo Mailbox voll | mail -s Warnung $_") if (stat ("/var/spool/mail/" . $_))[7] > $max_size; } }
cool, das Perlscript funktioniert. Danke, da hat mir einer das Script gemacht, was ich schon so lange benötige. Leider kapiere ich Programmierung (auch Scriptsprachen) nicht, daher
Dann les dir mal ne Einfuehrung durch...
bin ich dafür wirklich dankbar. Eine kleine Frage: Wie könnte man da im Mail Zeilenumbrüche machen?
Da der "Body" der Mail durch das "echo ... |" (im system-Befehl) erzeugt wird: Lies 'man echo'... system("echo -e 'Mailbox voll\n\nDein\nChef\n' | ... ") Alternativ kannst du den Mailtext auch in ne Variable packen: my $msg = qq(" Mailbox voll Dein Chef "); system("echo $msg | ... ") Das ganze laesst sich aber noch verbessern, indem man mail nicht via system aufruft, sondern eine PIPE oefftet. <ungetestet> my $subject; my $mboxsize; my $msg = qq[Mailbox voll]; my $sig = qq[\n\nDein\nChef\n]; ## Hier, fuer die pipe braucht's die "" nicht! foreach(@boxes) { unless (/^\.{1,2}$/) { $mboxsize = (stat ("/var/spool/mail/" . $_))[7]; if ( $mboxsize > $max_size) { $subject = "Warnung $_"; open(MAILER, "| mail -s $subject"); print MAILER "$msg"; print MAILER "$mboxsize", "ist zu gross!\n"; print MAILER "$sig"; close(MAILER); } } } </ungetestet> -dnh -- 18. To solve an interesting problem, start by finding a problem that is interesting to you. --- Eric S. Raymond, "The Cathedral and the Bazaar"