【发布时间】:2019-12-03 14:44:40
【问题描述】:
我想在远程服务器上运行 perl 脚本,它应该通过 ssh 登录到 linux 服务器并运行带有参数的 shell 脚本,然后打印结果,请帮助......
我有一个小脚本,它将登录并在远程主机上执行 ls 命令,但我想运行一个 bash 脚本。
use Net::SSH::Perl;
my $host = "xxxxx";
my $usr = "xxx";
my $pwd = "xxx";
my $ssh = Net::SSH::Perl->new($host);
$ssh->login($usr,$pwd);
my($stdout, $stderr, $exit) = $ssh->cmd("ls -l");
print "$stdout\n";
如何执行远程 shell 脚本而不是“ls -l”?
【问题讨论】:
-
您以相同的方式运行任何远程命令...
$ssh->cmd('whatever');无论使用何种语言实现都无所谓。如果远程计算机的正常路径中没有路径,您可能必须包含路径。 -
$ssh->cmd(' ./monitor status ');如果运行这个,我只得到空输出,我没有得到状态输出,它是一个带参数的 bash 脚本
-
你能显示
$ssh->cmd(' ./monitor status ')的$stderr和$exit值吗? -
好了。您必须让您的程序在远程计算机上正确运行。安装任何提供该缺失库的软件包都是很好的第一步。