Perl для системного администрирования



              

Распространенные ошибки при отправке почты - часть 6


# открываем каждый файл и считываем информацию о состоянии

open(STAT,$repodir.$separator.$statfile) or die "Невозможно открыть Sstatfile:$!\n";

chornp($report = <STAT>);

($hostname.$result,$details)=spiit(' ',$report,3);

warn "В файле Sstatfile утверждается, что он был сгенерирован машиной

Shostname1 \n" if($hostname ne Sstatfile);

 имя узла больше не считается пропущенным

delete $missing{$nostname}; # заполняем значениями хэши

 (Sresult eq "success")}

$success{$nostname}=$details;

$succeeded++: } else {

$fail{$hostname}=$details:

$failed++; }

close(STAT); } closedir(REPO);

# создаем информативный заголовок для сообщения if (Ssucceeded == $machines){

Ssubject = "[report] Success: $machines"; }

elsif ($failed == Smachines or scalar keys %missing >= Smachines) {

Ssubject = "[report] Fail: Smachines"; } else

{ ;

Ssubject = "[report] Partial: Ssucceeded ACK, Sfailed NACK".

((%missing) ? ", ".(scalar keys %missing)1." MIA" : ""); }

# создаем объект mailer и заполняем заголовки $type="sendmail";

my Smaller = Mail::Mailer->new($type) or die "Невозможно создать новый объект:$!\п";

$mailer->open({From=>$reportf romaddr,

To=>$reporttoaddr. Subject=>$subject})! or die "Невозможно заполнить объект mailer:$!\n";

» создаем тело сообщения !

print $mailer "Run report from $0 on " . scalar localtime(tine) . "\n":

if (keys %success){

print Smaller "\n==Succeeded==\n";

foreach $hostname (sort keys %success){

print Smaller "$hostname: $success{$hostname}\n":

} } 308

if (keys %fail){

print Smaller "\n==Failed==\n";

foreach Snostname (sort, keys %fail){

print Smaller "Shostname: $fail{$hostname}\n"

} }

if (keys %missing){

print Smaller "\n==Missing==\n";

print Smaller wrap("","".join(" ".sort keys %missing)),"\n"; }




Содержание  Назад  Вперед