2013-09-11 5 views
-2

я не могу установить модули, такие как Net :: SSH, потому что у меня нет разрешения, и других более сложных причин - так что я должен делать это по-старому моды,Perl SSH без модуля

my $host = "box215"; 
my $cmd_proc = "/bin/ps -ef"; 
my $cmd_disk = "df -h"; 
my $cmd = "ssh -n -o ConnectTimeout=20 $host '$cmd_proc ; $cmd_disk' "; 

является то, что Я до сих пор.

Я хочу в основном получить процессы и пространство на диске из коробки и вернуть его. однако я не уверен, как обращаться с запросом пароля для окна.

+1

Я думаю, что downvote исходит от кого-то, кто скептически относится к тому, что вы действительно не можете установить модуль. См. [Здесь] (http://stackoverflow.com/q/251705/168657) и/или [здесь] (http://stackoverflow.com/a/2980321/168657). – mob

ответ

0

Если вы действительно, абсолютноне может установить любые модули Perl , ваши варианты значительно более ограничены. Я просто собираюсь заверить ваше слово и предположить, что «другие, более сложные причины», которые вы упомянули о том, что вы не можете устанавливать модули, связаны с опасными для вашего здоровья боссами CPAN или чем-то одинаковым, которые не разрешены путем установки локально. Вот несколько (меньше, чем идеал) вариантов:

  1. (лучший вариант) Получит ваш системный администратор, чтобы настроить ключи SSH, так что вам не нужно вводить пароль для подключения к удаленному хосту. Действительно, вы должны это сделать, даже если вы можете использовать модули Perl.
  2. Используйте сценарий expect, чтобы отправить ваш пароль. Это, конечно же, требует, чтобы он был установлен, что, например, вариант №1, может потребовать посещения вашего администратора sys, сопровождаемого небольшим штрафом и/или взяточничеством. Если вы идете по этому маршруту, here - хороший учебник (на ожидание, а не на пресмыкающийся). Но, честно говоря, если все, что вы используете, это отправить ваш пароль ssh, вы вводите много ненужных осложнений, о которых можно было бы легко позаботиться, установив ключи ssh (см. Параметр №1).

Обратите внимание, что для обоих вариантов может потребоваться обратиться за помощью к администратору sys. Если он/она уже собирается установить/настроить что-то, вы можете попросить их установить некоторые модули Perl (Expect.pm и Net::SSH2) для вас, пока они на нем (если, конечно, кто-то не может умереть или стать ужасно изуродованным в результате).

+0

, спасибо, это то, что я искал! – user1747467

1

Я бы использовал ограниченную учетную запись с привилегиями, которая аутентифицируется на сервере с помощью ключа SSH, который не требует ключевой фразы.

http://www.paulkeck.com/ssh/

1

модули Perl могут быть установлены локально довольно легко. Так я обычно это делаю.
Загрузите и извлеките модуль CPAN и cd в положение Makefile.PL и выполните следующие команды. <path> - это то, где у вас есть права на полный доступ.

perl Makefile.PL PREFIX=<path> LIB=<path> 
make 
make test 
make install 

Чтобы использовать модуль в сценарии Perl добавьте следующую строку в начале вашего скрипта

use lib '<path>'; 
+0

спасибо, плохо попробуйте. Я пробовал другие методы, но казалось, что у меня не было доступа к – user1747467

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