Execução de script Crontab

0

Estou tentando fazer uma reinicialização automática de perda de comunicação e acabei de encontrar esse script online (abençoe a pessoa que fez isso). o script é

ping -c4 www.site.com > /dev/null

if [ $? != 0 ] 
then
  sudo /sbin/shutdown -r now
fi

, então este script funciona perfeitamente bem. O que eu queria fazer era adicionar outro script com a mesma função, mas em vez de pingar um site, eu queria adicionar outro para que ele pudesse pingar um servidor, então o que eu fiz foi mesmo script, mas apenas mudar o que estava ping

ping -c4 192.168.1.5 > /dev/null

if [ $? != 0 ] 
then
  sudo /sbin/shutdown -r now
fi

Estou armazenando este script em /usr/local/bin/ , então o nome do arquivo no primeiro script para a perda de comms é /usr/local/bin/commsloss.sh e, em seguida, o nome do arquivo do segundo script é /usr/local/bin/serverloss.sh

Eu adicionei as duas linhas em crontab -e

*/5 * * * * /usr/bin/sudo -H /usr/local/bin/commsloss.sh >> /dev/null 2>&1

*/10 * * * * /usr/bin/sudo -H /usr/local/bin/serverloss.sh >> /dev/null 2>&1

e então eu tentei desligar o servidor para ver se ele iria reiniciar, mas não funcionou.

alguma sugestão?

Eu queria saber se isso funcionaria ou se esta é a sintaxe correta para usar, para que eu possa ter apenas um script em vez de dois?

ping -c4 www.site.com > /dev/null || ping -c4 192.168.1.5 > /dev/null
    
por whalien52 25.07.2017 / 23:16

1 resposta

0

Não sei por que seu script de servidor atual não está funcionando, mas isso deve permitir que você use o operador or :

#!/bin/bash
ping -q -c4 www.site.com > /dev/null
siteup=$?
ping -q -c4 192.168.1.5 > /dev/null
ipup=$?
if [[ $siteup != "0" || $ipup != "0" ]]; then
  sudo /sbin/shutdown -r now
else
  :
fi
    
por 26.07.2017 / 00:05