2012-06-12 2 views
1

Недавно мы установили SSH на наших окнах Windows, чтобы мы могли устранить необходимость в монтировании дисков на наших машинах Linux. Мы используем Pentaho, и я пишу сценарий оболочки, который из ящика Linux, SSH в окно Windows и запускает скрипт perl.Выполнить удаленный сценарий Perl на ящике Windows из ящика Linux

Я могу написать способ SSH в окне Windows и переключиться на каталог, в котором хранятся скрипты Perl, которые мне нужно выполнить, я просто не могу понять, как их выполнять.

Это то, что у меня есть:

#!/bin/sh 
ssh -t [email protected] "cd /path/to/script/ /path/to/perl.exe HelloWorld.pl" 

Я также попытался:

#!/bin/sh 
ssh -t [email protected] "cd /path/to/directory/with/perl/script" \ 
        "/path/to/perl.exe HelloWorld.pl" 

Обе попытки приводят к короткой задержки, а затем «отсоединен от ххххх» и Perl не работает , Я могу выполнить все эти шаги вручную через оболочку, но не могу заставить их работать в форме скрипта. В качестве примечания единственный способ, которым я смог выполнить скрипты perl, - это иметь оболочку в директории, в которой находится скрипт perl.

+0

Вам действительно нужно изменить этот каталог перед вызовом своего скрипта perl? – Mat

+0

Похоже, что когда я попытался запустить его раньше из оболочки, не перейдя в каталог, в котором находился скрипт perl (скажем, я просто сделал /path/to/perl.exe /path/to/perl/script.pl) Я бы получил «Perl Script Not Found». – user1452067

ответ

1

Вам нужно использовать либо двоеточие, или выполнить с одним утверждением. попробуйте следующее:

ssh [email protected] "cd /path/to/script/; /path/to/perl.exe HelloWorld.pl" 

или:

ssh [email protected]xx "/path/to/perl.exe /path/to/script/HelloWorld.pl" 
+0

Это сработало! Отлично, большое спасибо. Вы этого не знаете, но вы только что дали мне окончательный результат, закончив почти год работы. – user1452067

+0

Удивительный, рад услышать, как это помогло. Чтобы люди знали, что на вопрос ответили правильно, было бы замечательно, если бы вы могли отметить это как таковое. –

+0

Ах, моя ошибка, я не был на 100% знаком с сайтом. Теперь вы должны быть отмечены. – user1452067

0

В командной оболочке Windows, вы можете использовать && как в Unix-оболочки. Если вы ожидаете, что первая команда будет успешной,

ssh -t [email protected] "cd /path/to/script/ && /path/to/perl.exe HelloWorld.pl" 

будет работать.

Смежные вопросы