Shell Script para reiniciar o Apache automaticamente de acordo com o Load do servidor.


Como reiniciar o apache automaticamente de acordo com o load do servidor

Este é um script simples ssh que pode ser adicionado ao cron de seu servidor dedicado ou VPS, muito útil em caso de problemas de load ou quando não é possível monitorar o tempo todo, ao menos, o servidor se manterá ativo até que o socorro chegue.

Cada ocorrência de load envia um e-mail definido no script.

Basicamente toda a mágica está no seguinte comando:

cat /proc/loadavg | sed s/\./ /’ | awk ‘{print $1}

Este comando funciona tanto em servidores CENT OS como em CLOUDLINUX. Tente digitar ele na linha de comando do seu SSH e verá que ele retorna exatamente o load average referente a média dos 5 últimos minutos do seu servidor.

A partir deste comando, é possível criar o seguinte script para monitorar os meus servidores:

#!/bin/sh
#
#  SCRIPT PARA PROTEÇÃO DE LOAD
#  INVETTOR.COM.BR - Gerenciamento de Servidores Clouds e Dedicados.
#  [email protected]
#

ver=`cat /proc/loadavg | sed 's/\./ /' | awk '{print $1}'`;
# echo $ver;

# load acima de 10 reseta o apache
if [ $ver -gt 10 ]
then
service httpd restart
echo "Apache Resetado" | sendmail -v [email protected].com.br
fi

# load acima de 35 para apache e mysql
if [ $ver -gt 35 ]
then
service httpd stop
service mysql stop
echo "Load Critico" | sendmail -v [email protected].com.br
fi

# load acima de 100 reboota o servidor
if [ $ver -gt 100 ]
then
reboot
echo "Reboot" | sendmail -v [email protected].com.br
fi

 

Salve o script em seu diretório /root como restart.sh, coloque o arquivo com as permissões 777

Agora é só configurar cron pelo arquivo etc/crontab, no exemplo o protetor de load é executado a cada 5 minutos.

*/5 * * * * root /restart.sh >/dev/null 2>&1

 

Se copiar, por favor, mantenha os créditos.

Deixe seu comentário