• Publicidad

scp entre dos máquinas Linux

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

scp entre dos máquinas Linux

Notapor enric73 » 2012-05-31 10:57 @498

Hola, buenas tardes.

Necesito copiar, en Perl, unos ficheros de una máquina Linux a otra.

De momento lo hago en scp en shell: $ scp fitxer.xxx enric-2:/path y luego me pide el login

¿Cómo sería en Perl?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use Net::SCP;
  3. $hostname = "server.ip.address";
  4. $username = "enric";
  5. $file = "temp.dat";
  6. $folder = "/home/$username/";
  7. $scp = Net::SCP->new( { "host"=>$hostname, "user"=>$username } );
  8. $scp->put("$file","$folder$file") or die $scp->{errstr};
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4


Gracias
enric73
Perlero Frecuente
Perlero Frecuente
 
Mensajes: 131
Registrado: 2012-03-16 06:27 @311

Publicidad

Re: scp entre dos máquinas Linux

Notapor explorer » 2012-05-31 11:11 @508

En la propia página de manual de Net::SCP, en la sección de preguntas más frecuentes, se indica que no se puede indicar una contraseña, al menos con ese módulo, así que la opción es la de usar claves RSA o DSA entre las máquinas, lo cual está bien porque te facilitará también el entrar por ssh en ellas.

Otra opción es usar Net::SCP::Expect (como también indica la misma página de manual.

Otra opción, con Net::OpenSSH (que a su vez requerirá tener instalado el módulo IO::Pty) Este módulo usará el comando scp y ssh del sistema.
JF^D Perl Programming Language
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 12847
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: scp entre dos máquinas Linux

Notapor enric73 » 2012-05-31 12:19 @555

Gracias explorer,

De momento he escrito esto, buscando por la red

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. use Net::SSH::Perl;
  4.  
  5. my $host = "1xx.xx.xx.xxx";
  6. my $user = "enric";
  7. my $password = "bruce";
  8.  
  9. #-- set up a new connection
  10. my $ssh = Net::SSH::Perl->new($host);
  11. #-- authenticate
  12. $ssh->login($user, $pass);
  13. #-- execute the command
  14. my($stdout, $stderr, $exit) = $ssh->cmd("scp /home/$user/Desktop");
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4


En este script, ¿dónde le digo la carpeta donde está el archivo y dónde se ha de guardar?

Gracias
enric73
Perlero Frecuente
Perlero Frecuente
 
Mensajes: 131
Registrado: 2012-03-16 06:27 @311


Volver a Básico

¿Quién está conectado?

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