![]() |
|< 1 2 3 >| | ![]() |
26 Einträge, 3 Seiten |
my @result = `ping -c 4 hostname`;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if ping -c 4 example.com
then
echo 'Alles klar'
exit 0
else
echo 'Ping geht nicht, ich versende eine eMail'
sendmail -t <<EOF
From: me@here
To: you@there
Subject: Host down
EOF
[ $? != 0 ] && echo 'Sendmail geht auch nicht :-('
exit 1
fi
Quoteif($result =~ /Zeitüberschreitung{4}/gi){
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$mail="recipient\@domain.net";
$linux="sender\@domain.net";
$host="X.X.X.X";
$out=`ping -c8 $host | grep -c "bytes from"`;
if($out < 7){
open(MAIL, "|/usr/sbin/sendmail -t");
print MAIL "to:$mail\n";
print MAIL "from:$linux\n";
print MAIL "subject:server down !\n";
print MAIL "hi \n\n";
print MAIL "cannot ping server X.X.X.X \n\n";
print MAIL "Time: ". localtime(time) ." \n";
close(MAIL);
}
exit;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#! /usr/bin/perl
use warnings;
use strict;
use Net::Ping;
my $host = 'irgendeinServer';
my $pingCount = 4;
my $ping = Net::Ping->new('icmp')
or die "Error in creating Net::Ping-Object: $!\n";
if (my $count = grep { $ping->ping($host) } 1..$pingCount) {
print "$count von $pingCount Versuchen erfolgreich";
} # if
else {
# mail versenden hier, z.B. mit Mail::Sendmail, MIME::Lite, ...
# ...
}
1
2
3
4
5
6
7
8
9
10
11
12
sub Ping
{ my $ip = shift; # Übergabe IP-Adresse
my $pingmax = PingMax;
my $answer = `ping -w 1000 -n $pingmax $ip`;
DosToWin \$answer; # Umlaute umwandeln
my $number = scalar $answer =~ s/(Bytes=32)/$1/mg;
$number == PingMax or do
{ $answer =~ s/^\s*\n//; # führende Leerzeilen löschen
$answer =~ s/\n\s*\n/\n/g; # Leerzeilen löschen
};
return $number;
}
![]() |
|< 1 2 3 >| | ![]() |
26 Einträge, 3 Seiten |