1

Привет, я ищу программное обеспечение или какую-то технику, которая позволила бы мне выполнять следующие действия в одном окне терминала:

  • Возьмите в качестве входных данных список компьютеров с поддержкой ssh с информацией о логине, пароле и пути к сценарию, что-то вроде этого:

    login:pass@192.168.1.1/path/to/script/run.sh login:pass@192.168.1.2/path/to/script/run.sh

  • Откройте ssh-подключения к этим машинам и выполните указанные сценарии удаленно.

  • Вывод всех скриптов должен быть передан в мое локальное окно.
  • Когда я посылаю сигнал типа Ctrl-C, я хочу уничтожить удаленные сценарии, а затем соединение. Большим плюсом было бы, если бы моя машина вышла из строя, удаленные сценарии также были убиты

Плюсом было бы, если бы я мог использовать это в терминале Cygwin, так как это то, что я использую, но я открыт для всего, что могло бы сделать это.

3 ответа3

0

Я предполагаю, что вы используете OpenSSH. Намеренно сложно программно дать пароль для ssh, потому что это, как правило, плохая идея. Вместо использования паролей, вы можете использовать аутентификацию с открытым ключом? Если это так, следующее должно быть сделано:

for cmd in login@192.168.1.1:/path/to/script/run.sh login@192.168.1.2:/path/to/script/run.sh; do
    ssh ${cmd%%:*} ${cmd#*:}
done
0

Если вы можете написать Perl, вы должны проверить Net::OpenSSH::Parallel.

Он может войти на удаленные хосты, используя открытый ключ или аутентификацию по паролю, и запускать запрограммированные задачи параллельно.

0

Вам потребуется аутентификация с открытым ключом, вам также понадобится что-то вроде PSSH, который представляет собой инструмент на основе Python для запуска нескольких параллельных сессий ssh.

https://code.google.com/p/parallel-ssh/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .