in reply to Re^2: Rename all files on remote server to *.bak recursively
in thread Rename all files on remote server to *.bak recursively
# untested my @host = ...; my $dir = ...; use Fcntl ':mode'; use Net::OpenSSH::Parallel; use Net::SFTP::Foreign; my $pssh = Net::OpenSSH::Parallel->new; for my $host (@host) { $pssh->add_host($host); } sub sftp_rename { my ($label, $ssh) = @_; my $sftp = $ssh->sftp; $sftp->find($dir, ordered => 1, wanted => sub { my (undef, $entry) = @_; if (S_ISREG($entry->{a}->perm)) { my $fn = $entry->{filename}; $sftp->rename("$fn", "$fn.bak"); } 0; }, ); } $pssh->all(parsub => \&sftp_rename); $pssh->run;
|
|---|