Skip to content.
Script > TelnetRemoto > TelnetRemote1

#!/usr/bin/perl -w

#Dipendenze Moduli
use Net::Telnet;
use Net::Ping;
use Term::ReadKey;

#
#ARRAY contenente i nomi dei client da Contattare via Telnet
#
@hosts = ("client1", "client2", "client3", "client4", "client5" );

$comando = "mount -a";

#
#Prelevo il nome del file di LOG
#
print "File output : ";
chomp ($fileOut = <STDIN>);

#
#Carico il nome dell'utente con il quale effettuare la login sui client
#
print "Login Host Remoto : ";
chomp ($login = <STDIN>);

#
#Carico la password dell'utente con il quale effettuare la login sui client
#
print "Password di $login Remoto : ";
ReadMode 'noecho';
chomp ($passwd = <STDIN>);
ReadMode 'normal';

#
# Oltre a generare un file di LOG stampo sulla STDOUT alcune informazioni
#
print "\n";

#
# Apro il file di Log in Scrittura
#
open(FILEOUT, "> $fileOut");

#
# Per ogni host dell'array eseguo le seguenti operazioni
#
for($i=0;$i<=$#hosts; $i++) {
        $p = Net::Ping->new();
        $pingone = "Alive" if $p->ping($hosts[$i]);
        $pingone = "Died" if !$p->ping($hosts[$i]);
        $p->close();
        
        print "$hosts[$i] ..... $pingone ... ";
        
        print FILEOUT "------------------ $hosts[$i] ---------------------\n";
        print FILEOUT "ping $hosts[$i] : $pingone\n\n";
        
        if($pingone eq 'Alive') {
                $t = new Net::Telnet(Timeout => 10,
                Errmode=>'return'
                );
                $t->open("$hosts[$i]");
                $t->login($login, $passwd);
                $msg = $t->errmsg;
                if($msg eq '') {
                        print FILEOUT "$comando \n";
                        @lines = $t->cmd("$comando");
                        print FILEOUT @lines;
                        print "Done ...\n";
                }
                else {
                        print FILEOUT "Error Message : $msg \n";
                        print "NOT Done ... ErrMsg : $msg\n";
                }
        }
        else {
                print "NOT Done ...\n";
        }
        print FILEOUT "--------------------------------------------------\n\n\n";
}
#
# Chiudo il file di LOG
#
close FILEOUT;

#
# Stampo sulla STDOUT un messaggio di fine operazioni
#
print "\nOperazione Conclusa. Prego visualizzare file $fileOut\n\n";

__END__

-- GioacchinoBisconti - 03 May 2005


Ultima versione: r1.1 - 03 May 2005 - 15:15 - Main.guest
 
Se riconosciuto dal sistema come utente: Main.guest