1 #!/usr/bin/perl -w 2 use Net::SFTP::Foreign; 3 use strict; 4 use Data::Dumper; 5 6 our $count = 0; 7 my ($stdout, $stderr, $exit) = ('', '', ''); 8 my $user = 'XXXX'; 9 my $host = 'YYY'; 10 my $sftp = Net::SFTP::Foreign->new(host=>$host, user=>$user); 11 $sftp->put('/home/lhp/Lperl/src/ssh/examplesftp.pl', 'borrame.txt'); 12 $sftp->ls('.', sub { print "$_[0]->{filename}\t"; print "\n" if $count++ % 5 == 0 } ); 13 print "\n";La conexión sftp se crea en la línea 10. El constructor
new
crea un objeto que representa la conexión abierta.
Los métodos get
y put
permiten mover ficheros
entre las máquinas. El método ls
nos devuelve una
estructura de datos con información específica sobre cada
entrada del directorio. Los tres métodos admiten un parámetro
que referencia a una subrutina que se ejecutará sobre cada entrada.
Sigue el resultado de la ejecución. La apertura de la conexión en la línea 10 hace que se pida el password. Una alternativa es usar claves RSA o DSA.
$ ./examplesftp.pl DSA host key for IP address '147.83.42.28' not in list of known hosts. XXXX@YYY's password: # el usuario rellena la password una vez MANPATH: Undefined variable. . .. ar bin etc src tmp .ssh examplesftp.pl papiguide work .pvmcshrc .DIMEMAS_defalults .adprc scratch1 scratch include .cshrc unstable .nanoscshrc .news_time .Xauthority .nqshosts borrame.txt .loggg .login .sh_history .exrc .papi .ssh2 repository .profile .forgex
Casiano Rodríguez León