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

时间:2012-06-12 20:32:00

标签: linux perl ssh execute shellexecute

我们最近在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脚本的唯一方法是在 in perl脚本所在的目录中。

2 个答案:

答案 0 :(得分:1)

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

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"

答案 1 :(得分:0)

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

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

会奏效。