Как узнать, когда виртуальная машина Virtualbox готова принимать соединения SSH? - PullRequest
4 голосов
/ 14 декабря 2011

Я пишу простой скрипт, который создает новую виртуальную машину VirtualBox, раскручивает ее и затем подключается к ней через SSH для выполнения некоторых команд.Проблема в том, что я должен ждать определенное количество времени для загрузки виртуальной машины.В настоящее время я просто делаю sleep 120 в своем сценарии, чтобы поспать 2 минуты.Однако вместо ожидания в течение 2 минут я хотел бы получить какое-то уведомление, когда виртуальная машина загружается и готова принимать соединения SSH.Это возможно?

PS: Решения, включающие гостевые дополнения, не будут работать - ОС на гостевом компьютере - vanilla CentOS 5.7, никакие гостевые дополнения не установлены.

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

Вы можете заменить sleep 120 чем-то вроде

while :; do
  ssh guest && break
  sleep 10
done

просто продолжать пытаться, пока ты не справишься.

0 голосов
/ 14 декабря 2011

Я часто это делаю с помощью скрипта notify-when-up2: http://stromberg.dnsalias.org/~strombrg/notify-when-up2.html

Он выдаст вам электронную почту и всплывающее окно, когда порт начнет принимать соединения, между прочим.

EG: notify-when-up2 -n remote.host.com 22 * ​​1006 *

...