usando curl e shell script para reiniciar o apache

0

Gostaria de reiniciar o servidor apache quando ele estiver inativo. Daí eu escrevi um script abaixo usando curl e um if loop

curl example.com
si='curl example.com'
if test si !=0
then
service apache2 restart
fi
~

Espero reiniciar o servidor apache , se o site estiver inativo

Mas retorna o seguinte erro

curl: (7) Failed to connect to example.com port 80: Connection refused

autostart.sh: line 8: test: si: unary operator expected

    
por SuperKrish 02.12.2016 / 09:22

2 respostas

2

curl parece esperar sempre por padrão se o servidor não responder, portanto, se você precisar usar curl , use-o junto com o parâmetro --max-time . 1 linha de script é suficiente para realizar essa tarefa:

curl --max-time 15 example.com || sudo service apache2 restart 

assumindo que o vahaitech.com é o seu site, se o curl não terminar de baixá-lo em 15 segundos, reinicie o serviço apache2.

    
por 02.12.2016 / 09:32
2

Acho que você está procurando o sinalizador de status de saída do comando anterior, por exemplo;

#!/bin/bash

curl example.com
if (( $? > 0 )); then
    sudo service apache2  restart
fi

Isto irá olhar para o estado de saída dos cachos, e se for nada, mas 0, irá reiniciar o servidor apache2

Se você quiser suprimir a saída desses comandos para que ele não diga nada, não se esqueça de adicionar

&>/dev/null

Após cada comando

    
por 02.12.2016 / 09:28