linux - 如何使用 perl 脚本和 ssh 在远程 linux 服务器中运行 bash 或 shell 脚本

标签 linux shell perl ssh

我想在远程服务器上运行一个 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”?

最佳答案

你的脚本没问题。只需更换

"ls -l"

"/path/to/my/script arg1 arg2"

注意 1 - 在远程使用脚本的完全限定路径是个好主意。

注意 2 - arg1 和/或 arg2 当然可以是变量。 $arg1 $arg2。如果您不使用变量,则不需要双引号,您应该改用单引号 '。

关于linux - 如何使用 perl 脚本和 ssh 在远程 linux 服务器中运行 bash 或 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57199975/

相关文章:

perl - 如何重构 for 循环中发生的递归以使其成为尾调用?

perl - 我想更改我的默认 perl

linux - 如何检查 Ubuntu 上是否存在预构建包

linux - 如何使用linux内核和硬件加速绘制三角形?

linux - Word 未扩展为 bash 中的 shell 命令

bash - 在命令行上解析 shell 脚本的输入

perl - 如何将模块的函数作为对 Perl 中另一个模块的引用传递?

linux - systemctl start nginx 和 systemctl start nginx.service 有什么区别?

linux - 使用 Go 在 Linux 中以编程方式安全地挂载网络位置

linux - BASH:在后台运行 script.sh 并将该实例的 pid 输出到文件?