如何使用Perl中的linux命令连接到sftp #/usr/local/bin/perl 严格使用; 使用警告; 系统($cd$PATH /usr/bin/sftp mysite.com
这样一个模糊的问题很难给出更多的答案 你试过这个模块了吗 编辑: 根据对问题的编辑-尝试使用Net::SFTP::Foreign如何使用Perl中的linux命令连接到sftp #/usr/local/bin/perl 严格使用; 使用警告; 系统($cd$PATH /usr/bin/sftp mysite.com,linux,perl,Linux,Perl,这样一个模糊的问题很难给出更多的答案 你试过这个模块了吗 编辑: 根据对问题的编辑-尝试使用Net::SFTP::Foreign #!/usr/local/bin/perl use strict; use warnings; system("cd $PATH /usr/bin/sftp mysite.com <<!EOF put sample.txt bye !EPF"); 您应该会收到一条更有意义的错误消息,您可以从中获得它。您可以尝试其他模块,例如或的SFTP功能。您可以详细说
#!/usr/local/bin/perl
use strict;
use warnings;
system("cd $PATH
/usr/bin/sftp mysite.com <<!EOF
put sample.txt
bye
!EPF");
您应该会收到一条更有意义的错误消息,您可以从中获得它。您可以尝试其他模块,例如或的SFTP功能。您可以详细说明一下,并展示您到目前为止所做的工作吗?除非您使用ssh代理设置公钥身份验证,否则将始终提示您使用SFTP输入密码。在shell中,这是有办法的被称为“期望”
use Net::SFTP::Foreign;
use warnings;
use strict;
my $host = "xxx.xxx.xxx.xxx";
my $sftp = Net::SFTP::Foreign->new($host, user => 'user', password => 'pass');
$sftp->error and die "Something bad happened: " . $sftp->error;
$sftp->put("sample.txt", "/home/test/test") or die "put failed: " . $sftp->error;