Aguarde a reinicialização da máquina linux

2

Eu tenho um pequeno script para instalar em minha máquina remota uma atualização.

Eu gostaria de reiniciar a máquina remotamente e, se ela for reinicializada, continue com mais alguns comandos. O que eu faço atualmente é:

ssh root@myMachine << COMMANDS_ISSUED
   ###... Tasks
   init 6
COMMANDS_ISSUED
sleep 180s
ssh root@myMachine << POST_REBOOT_COMMANDS
   ###.... More stuff
POST_REBOOT_COMMANDS

Existe uma maneira mais elegante de fazer isso? Como pingar a máquina todos os 5 segundos até um máximo de 4 minutos? Eu jogo com algumas máquinas linux que têm tempos de inicialização diferentes e se meu script continuasse imediatamente após a reinicialização, isso poderia me garantir um bom tempo. (Nota: Eu não quero paralelizar a execução sobre todas as máquinas como eu quero ver para cada máquina se tudo funcionou bem)

    
por Theo 28.10.2013 / 10:07

2 respostas

1

Eu diria pingar a máquina até que ela seja ativada.

while ! ping -c 1 192.168.1.1 &>/dev/null; do :; done

"c 1" enviará uma solicitação de cada vez, portanto, um loop a cada. Se não houver resposta, o ping retornará false e o loop continuará.

O corpo do loop está vazio - você pode colocar um comando de suspensão curto, se quiser. Caso contrário, o sinal de dois pontos ":", que é o comando [no-op] [1], é usado. Isso é porque você não pode ter um corpo de loop vazio.

    
por 28.10.2013 / 10:35
-1

você pode definir um crontab assim:

@reboot script-to-execute
    
por 28.10.2013 / 10:29