|
|
ВНИМАНИЕ: Използвайте форумите на сайта за дa зададете вашите въпроси.
Въпрос |
От: Димитър |
Дата: 10/29/2003 |
здравейте,
може ли да се направи скрипт, който да следи дали един ping
към даден адрес минава или не, в смисъл , ако няма ping да
изпраща на e-mail или да пише във файл?
Димитър
|
Отговор #1 |
От: dido (dido __@__ inetg__dot__bg) |
Дата: 10/29/2003 |
Hi,
Znachi na men mi se naloji da si napisha podoben perl script
tui kato polzwam wireless platki koito chesto "zabiwat" i e
nujno da se restartira PC-to za da prorabotqt neshtat
otnowo.W sluchaq tozi script prowerqwa za ping go defaultnia
si gw i ako ot 10pinga ne mu se reply-ne 1 packet mashinata
se reboot-va i se zapiswa datata w edin file. Eto ti
scriptcheto (perl).Mojesh da si go modificirash da ti
prashta mail ili kakvoto ti trqbwa :)
P.s. S bash stawa na 1 red ama ... :)))
Best Regards,
dido ..
#!/usr/bin/perl
use warnings;
use Net::Ping;
open DATE, ("date|");
my $date = <DATE>;
my $count = 0;
while (1) {
$p = Net::Ping->new("icmp");
open FH, "route \-n \|tail \-1 \|awk \'\{ print \$2 \}\'|";
my $host = <FH>;
if ($p->ping($host, 10))
{
$count = 0;
# print "$count\n";
}
else
{$count +=1;};
$p = Net::Ping->new("icmp");
if ($count==10){
system("echo '$date' >> /var/log/reboot");
system("reboot");
};
sleep(20);
$p->close();
}
|
Отговор #2 |
От: Димитър |
Дата: 10/29/2003 |
мерси, ще го пробвам
|
Отговор #3 |
От: Димитър |
Дата: 10/30/2003 |
#/usr/bin/perl -w
#
use Net::Ping;
@host_array = ( "www.jubii.dk", "www.dr.dk" );
$traceroute = "/usr/sbin/traceroute -n -m 25 -q 1";
$time = "/bin/date";
done = false;
while ( ! done ) {
$p = Net::Ping->new("icmp");
foreach $host (@host_array) {
for (i=0; i < 4 && not(done); i++)
done = $p->ping($host, 2);
if (not(done)) {
$trace = `$traceroute $host`;
$date = `$time`;
open(MAIL, "|/usr/bin/mail -s
\"$host\"
funky\@worldonline.dk") or die("Cant open: $!");
print MAIL $date;
print MAIL $trace;
close(MAIL);
}
}
$p->close();
sleep(45);
}
|
<< mplayer компилиране (5
) | vpopmail + mysql ... (0
) >>
|
|
|
|
|