【发布时间】:2018-01-15 22:32:37
【问题描述】:
我正在执行一个 Perl 脚本。我必须通过 SSH 连接到远程服务器并执行 python 脚本。下面是我在 perl 脚本中执行的代码行。我知道执行 python 脚本的选项很少,例如反引号和系统命令,但我在远程服务器中有脚本,我不能使用系统或反引号命令,因为它不是本地机器。我想要在运行时通过 SSH 执行的命令的输出。
my $ssh = new Net::SSH::Expect();
$ssh->login_username($server_login);
$ssh->server($server_name);
$ssh->login();
my $home_directory= $ssh->pwd;
my $command=qq(/home/feroz/MyScript.py $ARG0 $ARG1 $ARG2 $ARG3 1)
print "\n-------- BEGIN SCRIPT OUTPUT ----------\n";
$ssh->exec($command)){
print "\n -------- END SCRIPT OUTPUT ----------";
【问题讨论】:
-
SSH::Expect不是 CPAN 上的模块。这是自定义模块还是您输入错误Net::SSH::Expect? -
Yes Net::SSH 抱歉打错了
-
Net::SSH::Expect的文档没有提到login_username,但它确实声明$command的输出是从->exec返回的。那么您是否尝试过简单的print $ssh->exec($command);? -
我也试过了,但没有成功
-
@ferozalam_82 请参阅What should I do when someone answers my question?。如果有问题的答案或问题,请提供反馈。