2016-04-19 3 views
0

Я использую скрипт bash, который делает ssh-соединение с другими машинами и выполняет скрипты (которые хранятся на этой машине).Начать скрипт bash с SSH

  1. SSH освоить, чтобы выполнить сценарий 1
  2. SSH освоить, чтобы выполнить сценарий 2
  3. SSH освоить для выполнения сценарий 3
  4. SSH к node1 выполнить сценарий 1 и т.д ..

Теперь мой вопрос: закончится ли выполнение сценария 2 на старте мастера до того, как скрипт 1 (который занимает 30 секунд) закончен? Будут ли они работать одновременно?

+1

Как и любой другой команда, 'ssh' работает до тех пор, пока не будет сделан, если только вы специально запустите его в фоновом режиме. – tripleee

ответ

1

Это будет зависеть от того, как работает ваш скрипт bash на вашем компьютере (который подключает SSH к серверам) и скрипты на этих серверах.

Например, следующие команды являются полностью процедурными и не распараллеливаются, если скрипты 1, 2 и 3 также являются процедурными и не работают fork в фоновом режиме перед выходом (т. Е. Вся работа выполняется, когда сценарий завершается)

ssh master 'script1' 
ssh master 'script2' 
ssh master 'script3' 

Это может быть упрощен

ssh master 'script1; script2; script3' 

Вы можете распараллелить работу разветвления этих сценариев на задний план, таким образом, выполнять сценарии 1, 2 и 3 одновременно.

ssh master 'script1 &; script2 &; script3 &' 

Опять же, убедитесь, что ваши сценарии не вилочную работы в самом фон и выход до работы делаются

0

Это зависит. Сравнить

sleep 10 
date 

sleep 10 & 
date 
1

Я просто даю здесь более подробный ответ, чем @tripleee ...

выполнят Скрипт2 после завершения script1:

ssh master script1 
ssh master script2 

вы могли бы сделать то же в одном соединении:

ssh master 'script1 ; script2' 

Если вы хотите им работать одновременно:

ssh master 'script1 &; script2 &' 

процитировать manual:

Если команда завершается оператором & управления, оболочка выполняет команду в фоне в субоболочке ,

Есть сообщения (как here и here) о том, как запустить кратные команды в одном соединении.

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