与期望模块不工作的SCP

我已经写了下面的程序来自动化perl中的scp命令。

#!/usr/bin/expect spawn scp hscpe@9.126.134.54:/home/hscpe/output.txt imt set pass "jujsa32s" expect { password: {send "$pass\r"; exp_continue } 

但文件传输没有发生。 通常在控制台上,如果我尝试相同的SCP命令,它的工作正常。 任何人都可以找出问题

提前致谢!!..

使用Net :: OpenSSH :

 my $ssh = Net::OpenSSH->new('hscpe@9.126.134.54', password => 'jujsa32s'); $ssh->scp_get('/home/hscpe/output.txt', 'imt/output.txt'); 

您正在使用您的密码。
我想你应该使用expect.pm来完成这个任务。 运行perl脚本时使用的环境可能会遗漏运行expect的部分。

你应该在bash脚本中使用“sshpass”:

 #!/bin/bash sshpass -p "password" scp -r user@example.com:/some/remote/path /some/local/path