Take a look at the Net::SCP module. This should give you the tools you need. To quote the example from the module documentation:
use Net::SCP; $scp = Net::SCP->new( { "host"=>$hostname, "user"=>$username } ); $scp->scp($source, $destination);
Still, it assumes that you can login to the host without prompting for password (you have exchanged the SSH keys). If you want to automate the password prompt, there is a another module: Net::SCP::Expect. This should work as a starting point.
#!/usr/bin/perl use strict; use v5.14; use Net::SCP::Expect; my $user = 'u'; my $pass = 'p'; my $host = '127.0.0.1'; my $src_path = "/tmp/test/"; my $dst_path = "/tmp/"; my $s = Net::SCP::Expect->new; $s->login($user, $pass); $s->scp($src_path,"$host:$dst_path");
Pick one to your liking, and good luck with the task ahead of you.
UPDATE: added Net::SCP::Expect example.
- Luke
In reply to Re: Copy file from one sereve to another server directly.
by blindluke
in thread Copy file from one sereve to another server directly.
by dilip.patel
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |