Я хочу, чтобы запустить ожидать сценарий внутри сценария оболочки, который подключается к удаленной машине с помощью SSH, цель состоит в том, чтобы сделать это в параллельном методе, как это:Параллельный удаленный SSH к одной машине
' #bin/bash
(expect_script_ssh_machine1.tcl parameter1 > file1) &
(expect_script_ssh_machine1.tcl parameter2 > file2) &
(expect_script_ssh_machine1.tcl parameter3 > file3) &
wait
` сценарий ожидания выглядит примерно так:
#/bin/expect -f
spawn ssh [email protected]
...code...
сценарий ожидания занимает около 30 секунд, чтобы выполнить задачу и распечатать результат. Возможно ли это? Возможно, он может работать с разными машинами, но с одной уникальной машиной. Я не уверен, что скрипт может одновременно выполнять 3 ssh-подключения к одной уникальной машине.
Благодаря
Вы пробовали? Это работает? Не могли бы вы просто заменить '&' на ';' и дождаться завершения каждой задачи? –
Да, я пробовал, но получаю только результаты последнего сценария ожидания. И если я поставлю ';' он работает, но это уже не параллельная задача. – Shannon
Можете ли вы перенаправить 'stdout' в сценарии' expect' ('expect' имеет такие ключи, как' -d', но также более мощные функции 'tcl' для обработки вывода)? Нужно ли параллельно выполнять эту работу? При выполнении простых задач, которые записываются в файл, я использовал 'pssh' (инструмент python) для создания нескольких соединений без проблем. Я думаю, что 'bash',' ssh', 'expect' или' & 'ест ваш выход здесь, и вам, возможно, придется сказать сценарию напрямую, чтобы перенаправить' stderr' в 'stdout'. –