Archivio mensile:Marzo 2017

Verifica di un host “up and running” ma senza ping

Avevo la necessità di verificare che un server fosse up and running, ma senza poter usare il ping in quanto disabilitato.
Girovagando mi sono imbattuto in un pezzo di codice perl che ho provveduto ad inserire all’interno di uno script bash:


[...]
FOO=`/usr/bin/perl -x $0`
echo <<'__END__' > /dev/null
#!/usr/bin/perl -wl
use IO::Socket::INET;
$| = 1;
my $socket = new IO::Socket::INET(
PeerHost => 'aaa.bbb.ccc.ddd',
PeerPort => '22',
Proto => 'tcp',
Timeout => 2,
);
die "cannot connect to the server $!\n" unless $socket;
print "connected to the server\n";
__END__

#/usr/sbin/ping $HOST
if [ "${FOO}" != "" ]
then
[....]

se il server mi risponde sulla porta 22 in quanto devo usare l’sftp, ma è possibile impostare la porta su di un diverso servizio esposto.
Molto versatile ed utile in quanto ha il timeout personalizzabile.