【发布时间】:2012-04-05 16:25:07
【问题描述】:
在下面的代码中,我尝试使用 Perl 脚本将 git 存储库克隆到另一台机器。
如果我打印$output,我会收到所有登录消息,即/etc/motd/ 的内容,但不是实际的命令输出。
如何解决这个问题?我在执行 ssh 命令时是否做错了什么?
sub myexec_remote
{
my($cmd, $hostname, $filename) = @_;
my $stdout = $stderr = $exit= "";
my ($output) = `ssh $hostname $cmd 2>&1`;
## this is the command i.e, executed
##command is ssh 111.22.11.32 "git clone --bare gt@l.com:/nfs/git/ /nfs/new123/"
$exit = $?;
if (defined $output)
{
open(MYOUTFILE, ">$filename");
print MYOUTFILE "$output";
close(MYOUTFILE);
}
}
我正在使用反引号,因为有时 ssh 是在没有密码的情况下完成的,而且我看到 NET:SSH 模块不支持它...
【问题讨论】:
-
没有密码?有密码,还是没有密码(= 无密码)?
标签: linux perl ssh perl-module