从 Linux 盒子在 Windows 盒子上执行远程 Perl 脚本



我们最近在Windows机器上设置了SSH,这样我们就可以消除在Linux机器上安装光盘的需要。我们正在使用Pentaho,我正在编写一个shell脚本,它将从Linux机器SSH到Windows机器并执行perl脚本。

我能够以一种SSH方式写入Windows框并切换到保存我需要执行的Perl脚本的目录,我只是不知道如何实际执行它们。

这是我所拥有的:

#!/bin/sh
ssh -t xxxxx@xxxxx "cd /path/to/script/ /path/to/perl.exe HelloWorld.pl"

我也尝试过:

#!/bin/sh
ssh -t xxxxx@xxxxx "cd /path/to/directory/with/perl/script" 
                   "/path/to/perl.exe HelloWorld.pl"

两次尝试都会导致短暂的延迟,然后"与 xxxxx 断开连接",并且 perl 不会运行。我可以通过 shell 手动执行所有这些步骤,但似乎无法让它们以脚本形式工作。请注意,我能够执行perl脚本的唯一方法是在perl脚本所在的目录中具有shell。

您需要使用分号来结束语句,或者使用一个语句执行。请尝试以下操作:

ssh xxxxx@xxxxx "cd /path/to/script/; /path/to/perl.exe HelloWorld.pl"

或:

ssh xxxxx@xxxxx "/path/to/perl.exe /path/to/script/HelloWorld.pl"

在 Windows 命令 shell 中,你可以像在 Unix-shell 中一样使用&&。如果希望第一个命令成功,

ssh -t xxxxx@xxxxx "cd /path/to/script/ && /path/to/perl.exe HelloWorld.pl"

会工作。

最新更新