Как запустить сценарий оболочки на удаленной машине с локальной программой Perl? - PullRequest
0 голосов
/ 01 сентября 2009

Я пишу сценарий Perl, который должен быть запущен на компьютере, подключенном к сети под управлением Linux. Сценарий должен вводить и получать результаты от набора сценариев оболочки на компьютере с Linux. Я могу скопировать входные файлы с ПК и даже вызвать сценарий Perl на компьютере с Linux, но когда этот сценарий пытается запустить файлы .sh с помощью:

 system("./shell_script.sh");

Распечатывается следующая ошибка:

 '.' is not recognized as an internal or external command, operable program or batch file.

Под этим я понимаю, что он пытается выполнить файлы .sh в Windows. Так есть ли способ заставить ПК сказать Linux-блокам: «Эй, приятель, запусти это сам»?

Спасибо.

Ответы [ 2 ]

6 голосов
/ 01 сентября 2009

Вы можете использовать Net :: SSH :: Perl для запуска команд / сценариев на удаленном компьютере:

use warnings;
use strict;

use Net::SSH::Perl;

my $command = "command";
my $host = "host";
my $user = "username";
my $pass = "password";

my $ssh = Net::SSH::Perl->new( $host );
$ssh->login( $username, $pass );
my($stdout, $stderr, $exit) = $ssh->cmd( $command );

print $stdout;
5 голосов
/ 01 сентября 2009

Я думаю, что вы хотите использовать что-то вроде Net :: SSH или Ожидайте , чтобы войти в систему Linux и запустить скрипт оболочки. system() работает на локальной машине; это не способ отправлять команды на удаленный компьютер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...