Mi problema es el siguiente: después de estar una semana averiguando qué librerías tenía que bajarme para poder utilizar sftp y realizando prueba - error he logrado realizar backup de una máquina remota. Sin embargo necesito que el script realice backups atacando a otros 3 servidores y realmente no sé cómo. He estado leyendo tutoriales y he visto que se podría hacer con for o foreach, ¿alguien me puede echar una mano?. EL código realizado es el siguiente:
Using perl Syntax Highlighting
#!/usr/bin/perl -w
use strict;
use Expect;
my $sftpUsername = "username";
my $sftpPassword = "password";
my $sftpServer = "server1";
my $fileToFetch = "bigip.conf";
my $path = "/config";
my $timeout = 10;
#my $i1 = "server1";
#my $i2 = "server2";
#my $i3 = "server3";
#my $i4 = "server4";
my $command = 'sftp';
my $params = ("$sftpUsername\@$sftpServer:$path/$fileToFetch $sftpServer\_$fileToFetch");
my $exp = Expect->spawn($command, $params) or die "Cannot spawn sftp command \n";
$exp->expect($timeout,
["Password Authentication"],
["Are you sure you want to continue connecting", sub {my $self = shift; $self->send("yes\n");}]
);
$exp->expect($timeout, ["Password:"]);
$exp->send("$sftpPassword\n");
$exp->expect($timeout, ["sftp>"]);
$exp->send("get $fileToFetch\n");
$exp->expect($timeout, ["sftp>"]);
$exp->send("bye\n");
$exp->soft_close();
use strict;
use Expect;
my $sftpUsername = "username";
my $sftpPassword = "password";
my $sftpServer = "server1";
my $fileToFetch = "bigip.conf";
my $path = "/config";
my $timeout = 10;
#my $i1 = "server1";
#my $i2 = "server2";
#my $i3 = "server3";
#my $i4 = "server4";
my $command = 'sftp';
my $params = ("$sftpUsername\@$sftpServer:$path/$fileToFetch $sftpServer\_$fileToFetch");
my $exp = Expect->spawn($command, $params) or die "Cannot spawn sftp command \n";
$exp->expect($timeout,
["Password Authentication"],
["Are you sure you want to continue connecting", sub {my $self = shift; $self->send("yes\n");}]
);
$exp->expect($timeout, ["Password:"]);
$exp->send("$sftpPassword\n");
$exp->expect($timeout, ["sftp>"]);
$exp->send("get $fileToFetch\n");
$exp->expect($timeout, ["sftp>"]);
$exp->send("bye\n");
$exp->soft_close();
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4
Con ese código como dije me deja hacer sftp a un servidor pero necesito hacerlo a más de uno.
Espero que me puedan ayudar. Muchas gracias de antemano.