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
