shutdown -p now if not ping
Добавлено: 2009-04-08 10:01:41
Добрый день.
есть UPS 2000 подключенный к серверу для корректного завершения работы Win 2к3. при сбоях электроэнергии.
на этотом UPS висят еще коммутатор и proxy на FreeBSD.
цель: отключить freeBSD если не возможно pingануть Win 2k3
знакомый запилил такой скрипт:
только он не работает если его запускать cron-ом!
есть UPS 2000 подключенный к серверу для корректного завершения работы Win 2к3. при сбоях электроэнергии.
на этотом UPS висят еще коммутатор и proxy на FreeBSD.
цель: отключить freeBSD если не возможно pingануть Win 2k3
знакомый запилил такой скрипт:
Код: Выделить всё
/usr/local/crons/>cat shutdown.pl
#!/usr/bin/perl
use Net::Ping;
#################################################
my $host = '192.168.0.8'; # host to ping
my $pings = 5; # number of pings to send
#################################################
my $count = 0; # number of received pings (DO NOT EDIT)
$p = Net::Ping->new("icmp");
for(my $i = 0; $i < $pings; $i++)
{
$count++ if($p->ping($host, 2));
sleep(1);
}
$p->close();
if($count){
print "Pings sent/rcvd $pings/$count\nHost is reacheble. Doing nothing...\n"; }else{
print "shutdown -p now";
#uncomment next string to make actual shutdown
`shutdown -p now`;
}
Код: Выделить всё
/usr/local/crons/>tail -f /var/log/cron
Apr 8 10:50:00 myproxy /usr/sbin/cron[1538]: (root) CMD (/usr/local/crons/shutdown.pl)
Apr 8 10:50:15 myproxy cron[1536]: (root) MAIL (mailed 15 bytes of output but got status 0x004e )
Apr 8 10:55:00 myproxy /usr/sbin/cron[1546]: (operator) CMD (/usr/libexec/save-entropy)
Apr 8 10:55:00 myproxy /usr/sbin/cron[1548]: (root) CMD (/usr/local/crons/shutdown.pl)
Apr 8 10:55:00 myproxy /usr/sbin/cron[1547]: (root) CMD (/usr/libexec/atrun)
Apr 8 10:55:15 myproxy cron[1545]: (root) MAIL (mailed 15 bytes of output but got status 0x004e )
Apr 8 11:00:00 myproxy /usr/sbin/cron[1568]: (root) CMD (newsyslog)
Apr 8 11:00:00 myproxy /usr/sbin/cron[1569]: (operator) CMD (/usr/libexec/save-entropy)
Apr 8 11:00:00 myproxy /usr/sbin/cron[1571]: (root) CMD (/usr/libexec/atrun)
Apr 8 11:00:00 myproxy /usr/sbin/cron[1572]: (root) CMD (/usr/local/crons/shutdown.pl)
Apr 8 11:00:15 myproxy cron[1570]: (root) MAIL (mailed 15 bytes of output but got status 0x004e )