Aqui está um exemplo de como você pode testar se uma máquina está on-line usando ping
:
#!/bin/bash
# test-online.sh
ret=1
while [ $ret != 0 ]
do
ping -c 1 $1 2>/dev/null
ret=$?
done
exit 0
Você pode adaptar isso para usar ssh
substituindo a linha ping
por algo como ssh $1 "echo"
, supondo que você possa se conectar à máquina sem uma senha.
Usando o script acima (vamos chamá-lo test-online.sh
), você pode iniciar a máquina e medir o tempo usando GNU time
(o primeiro argumento deste script é o nome da máquina):
#!/bin/bash
# start-and-time.sh
start-vm $1
/usr/bin/time -f "%E" ./test-online.sh $1
A saída será algo como 1:23.52
, o que significa que sua máquina demorou 1 minuto e 23 segundos para inicializar.
Se você quiser medir o tempo de inicialização de muitas máquinas, basta chamar start-and-time.sh
para cada máquina:
#!/bin/bash
mymachines=(machine1 machine2 machine3)
for machine in "${machines[@]}"
do
echo -n "$machine "
./start-and-time.sh $machine &
done
que fornecerá a seguinte saída exemplificativa:
machine1 1:53.23
machine2 2:42.42
machine3 0:42.42