• Publicidad

Conectividad SSH a varios Host

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Notapor explorer » 2007-07-16 14:12 @633

Es que *WRITER es el handle del fichero de salida. sshopen2 necesita al menos un fichero de salida para sacar los mensajes.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Notapor situ » 2007-07-16 18:53 @828

¿Digamos que ese código no esta mal, entonces? Aunque tenga información que no voy usar.
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor explorer » 2007-07-16 19:06 @838

Yo lo que haría, en caso de que no me interesase para nada los mensajes de salida, sería abrir el fichero nulo (/dev/null) con un open WRITER,...

Aunque quizás hay otras formas... que ahora mismo no recuerdo... a ver si otro perlero se acuerda.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor situ » 2007-07-16 19:12 @842

Gracias, voy a probarlo y a poner el codigo ya que siempre es util tener codigos de referencia
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor situ » 2007-07-16 19:24 @850

Bueno, acá les dejo el script terminado.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
 use Net::SSH qw(sshopen2);
  use strict;
 my $user = "operador";
  my $host = "localhost";
  my $cmd = "ls";

  sshopen2("$user\@$host", *WRITER, *READER, "$cmd") || die "ssh: $!";
 while (<WRITER>) {
open(LECTURA,">> hola.txt") || die "No pudo crearse: $!";
print LECTURA "$_";
  }

 while (<READER>) {
open(ESCRITURA,"> /dev/null") || die "No pudo crearse: $!";
print ESCRITURA "$_";
  }
 
close(READER);
close(WRITER);
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4



Explorer, si tenes unos minutos, fíjate si está bien toda la sintaxis.

Gracias
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor explorer » 2007-07-16 20:18 @887

Te has liado un poco con los bucles...

READER es el handle por donde recibimos lo que llega de ssh, por lo que podemos mandarlo a un fichero externo. WRITER lo podemos obviar porque no vamos a mandar nada.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use Net::SSH qw(sshopen2);
use strict;

my $user = "usuario";
my $host = "host";
my $cmd  = "ls";

# Opciones extra
# $Net::SSH::DEBUG = 1;
# push @Net::SSH::ssh_options, '-p 2200';

# Fichero donde guardaremos el resultado
open LS,">ls.txt";

# Run!
sshopen2("$user\@$host", *READER, *WRITER, $cmd) || die "ssh: $!";

# Leemos lo que llega y lo grabamos
while (<READER>) {
    chomp();
    print LS "$_\n";
}

# Fin, cerramos
close(READER);
close(WRITER);
close(LS);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor situ » 2007-07-17 01:29 @104

Muchísimas gracias
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor situ » 2007-07-17 23:29 @020

Te molesto nuevamente tengo el siguiente código.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use Net::SSH qw(sshopen2);


my $user = "operador";
my $cmd  = "ls";

# Opciones extra
# $Net::SSH::DEBUG = 1;
# push @Net::SSH::ssh_options, '-p 2200';

# Fichero donde guardaremos el resultado
open LS,">ls.txt";
open DATOS,"ips.lst";

while($linea = <DATOS>) {
    chomp($linea);

# Run!
sshopen2("$user\@$linea", *READER, *WRITER, $cmd) || die "ssh: $!";
}

# Leemos lo que llega y lo grabamos
while (<READER>) {
    chomp();
    print LS "$_\n";
}

# Fin, cerramos
close(READER);
close(WRITER);
close(LS);
close (DATOS);
 
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Donde el archivo: ips.lst contiene las direcciones IP de los servidores.

¿Cómo puedo hacer para obtener como resultado lo siguiente?:
Código: Seleccionar todo
IP
salida del comando


Así sé a qué servidor corresponde cada salida.

Gracias
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Notapor Kiloko » 2007-07-19 14:48 @658

Una pregunta situ, y q pasa si al server le ponen contraseña??,
ya no va a jalar tu programa, o ssh te da acceso a pasword?
segun yo no,,, o si?
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Notapor situ » 2007-07-19 15:03 @669

Me conecto mediante el intercambio de claves publica/privada, por eso en ningun momento uso la password del usuario.

Aca tenes mas info:
http://skarvin.blogspot.com/2007/03/ani ... a-ssh.html
http://laura.celdran.name/2005/05/paso- ... entre.html

Saludos
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

AnteriorSiguiente

Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado