Mailinglist Archive: opensuse-de (5006 mails)
| < Previous | Next > |
Re: Benachrichtigungs-Script
- From: David Haller <david@xxxxxxxxxx>
- Date: Thu, 9 Aug 2001 23:17:57 +0200
- Message-id: <20010809231757.C829@xxxxxxxxxx>
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"
>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"
| < Previous | Next > |