Net::SSH::Perl
![Nota Nota](https://perlenespanol.com/foro/styles/prosilver/imageset/icon_post_target.gif)
Estimados, tengo el siguiente script el cual tiene como objetivo mediante el módulo en cuestión recaudar información de mis servidores.
El problema que tengo es que solo se ejecuta en un host; cuando pasa al segundo obtengo lo siguiente:
¿Alguien me puede ayudar? Por otro lado quería ver si había alguna posibilidad de cambiar el formato de la creación del HTML porque por ejemplo al traerme la información de la red está todo junto y no como me lo muestra cuando hago el comando por consola.
¡Saludos y Gracias!
Using perl Syntax Highlighting
- #!/usr/bin/perl
- BEGIN {
- eval "use Net::SSH::Perl";
- if ( $@ ) {
- warn "No se puede cargar el modulo: Net::SSH::Perl\n"
- . "Instalar modulo:\n"
- . "\t\t~# perl -MCPAN -e 'install Net::SSH::Perl'l\n";
- exit ();
- }
- }
- if ( @ARGV != 2 ) {
- die "\nUso: $0 <hosts> <reporte>\n\n"
- . " <hosts> Hosts donde nos vamos a conectar [ej -> hosts.txt]\n"
- . " <reporte> Reporte [ej -> reporte.txt]\n\n"
- ;
- }
- use Net::SSH::Perl ;
- $file = $ARGV[0];
- chomp $file;
- open $FILE, '<', $file or die $!;
- @hosts = <$FILE>;
- close $FILE;
- $reporte = $ARGV[1];
- close $reporte;
- open (F,">> $reporte");
- print F "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN''htp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>\n";
- print F "<html xmlns=http://www.w3.org/1999/xhtml>\n<head>\n";
- print F "<meta http-equiv=Content-Type content='text/html;charset=iso-8859-1' />\n";
- print F "<title>Reporte de Datos</title>\n";
- print F "</head>\n";
- print F "<body>\n";
- print F " <table border='0' align=center width=700 cellpadding='0' cellspacing='0' bgcolor=#ffffff>\n";
- print "[+] Hosts:$file\n[+] Reporte:$reporte\n\n";
- for $archivo(@hosts){
- chomp $archivo;
- $scon = Net::SSH::Perl->new ("$archivo");
- $scon->login("situ","mipassword");
- ($output,$errors,$exit) = $scon->cmd("echo '<tr>\n<td bgcolor=#f2f2f2>\n<font color=#ff0000>-Hosts:<br></font>\n';hostname;echo '</td></tr>\n<tr>\n<td bgcolor=#f2f2f2>\n<font color=#666600>-Passwd:<br></font>';cat /etc/passwd;echo '</td></tr>\n<tr>\n<td bgcolor=#f2f2f2>\n<font color=#666600>-Kernel:<br></font>';uname -a;echo '</td></tr>\n<tr>\n<td bgcolor=#f2f2f2>\n<font color=#666600>-Red:</font>';/sbin/ifconfig -a;echo'</td></tr>\n'");
- print F "$output\n";
- }
- print F " </table>\n";
- close (F)
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
El problema que tengo es que solo se ejecuta en un host; cuando pasa al segundo obtengo lo siguiente:
Using text Syntax Highlighting
Net::SSH: Can't bind socket to port 1023: Dirección ya está en uso at test1.pl line 53
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
¿Alguien me puede ayudar? Por otro lado quería ver si había alguna posibilidad de cambiar el formato de la creación del HTML porque por ejemplo al traerme la información de la red está todo junto y no como me lo muestra cuando hago el comando por consola.
¡Saludos y Gracias!