Experimente este comando para "ssh":
while true; do command ssh "$@"; [ $? -eq 0 ] && break || sleep 0.5; done
Extraído de: link
Eu quero escrever um script bash que execute alguns comandos em um servidor remoto via ssh. Então eu preciso reiniciar o servidor remoto, conectar novamente via ssh e executar mais comandos.
Estou usando este código:
ssh $theip 'sudo reboot'
echo "starting sleep---1"
sleep 30
echo " finished sleeping1"
while ! ping -c 1 $theip &>/dev/null; do echo "waiting..."; done
echo "starting sleep---2"
sleep 45
echo " finished sleeping2"
echo "finished rebooting"
ssh $theip 'commands....'
O problema é que às vezes o servidor está retornando pings antes que eu possa ssh para ele e, em seguida, o script falhar. Alguns dos meus servidores precisam de mais do que os 45s dormem. Existe algum outro método para fazer isso? Por exemplo, tente ssh no loop while em vez de ping?
Obrigado,
Experimente este comando para "ssh":
while true; do command ssh "$@"; [ $? -eq 0 ] && break || sleep 0.5; done
Extraído de: link
Faça um ls -l
no seu /etc/rc3.d
ou /etc/rc5.d
dependendo do seu nível de execução. A coisa a observar aqui é que o daemon de rede é iniciado antes do daemon ssh. portanto, ping
está disponível antes de ssh
. Você deve provavelmente wait
um pouco mais antes de executar ssh
na máquina remota.
No meu caso, existem cerca de 19 serviços iniciados após a rede, mas antes do ssh.
lrwxrwxrwx 1 root root 17 Sep 9 2011 S10network -> ../init.d/network
lrwxrwxrwx 1 root root 16 Sep 9 2011 S11auditd -> ../init.d/auditd
lrwxrwxrwx 1 root root 21 Sep 9 2011 S12restorecond -> ../init.d/restorecond
lrwxrwxrwx 1 root root 16 Sep 9 2011 S12syslog -> ../init.d/syslog
lrwxrwxrwx 1 root root 20 Sep 9 2011 S13irqbalance -> ../init.d/irqbalance
lrwxrwxrwx 1 root root 19 Sep 9 2011 S15mdmonitor -> ../init.d/mdmonitor
lrwxrwxrwx 1 root root 19 Sep 9 2011 S18rpcidmapd -> ../init.d/rpcidmapd
lrwxrwxrwx 1 root root 17 Sep 9 2011 S19rpcgssd -> ../init.d/rpcgssd
lrwxrwxrwx 1 root root 15 Sep 9 2011 S20kdump -> ../init.d/kdump
lrwxrwxrwx 1 root root 20 Sep 9 2011 S22messagebus -> ../init.d/messagebus
lrwxrwxrwx 1 root root 24 Sep 9 2011 S23setroubleshoot -> ../init.d/setroubleshoot
lrwxrwxrwx 1 root root 15 Sep 9 2011 S25netfs -> ../init.d/netfs
lrwxrwxrwx 1 root root 15 Sep 9 2011 S25pcscd -> ../init.d/pcscd
lrwxrwxrwx 1 root root 15 Sep 9 2011 S26acpid -> ../init.d/acpid
lrwxrwxrwx 1 root root 19 Sep 9 2011 S26haldaemon -> ../init.d/haldaemon
lrwxrwxrwx 1 root root 14 Sep 9 2011 S26hidd -> ../init.d/hidd
lrwxrwxrwx 1 root root 20 Sep 9 2011 S26lm_sensors -> ../init.d/lm_sensors
lrwxrwxrwx 1 root root 16 Sep 9 2011 S28autofs -> ../init.d/autofs
lrwxrwxrwx 1 root root 15 Sep 9 2011 S50hplip -> ../init.d/hplip
lrwxrwxrwx 1 root root 15 Sep 13 2011 S50snmpd -> ../init.d/snmpd
lrwxrwxrwx 1 root root 14 Sep 9 2011 S55sshd -> ../init.d/sshd
Tags ssh ping linux shell-script