↓ Ir para o conteúdo principal
  1. Artigos/

Script para reiniciar servidores automaticamente

Rubén Infante Docio
Autor
Rubén Infante Docio
Engenheiro de software

Por muito tempo eu configuro um servidor em casa, com vários serviços, centro de mídia, etc…

O importante em um servidor é que seus serviços funcionem corretamente pelo maior tempo possível, por isso é necessário verificar se todos estão ativos. No entanto, devido a erros, em algumas ocasiões, esses servidores param de funcionar, então é necessário verificar se permanecem ativos de tempos em tempos e, se não estiverem, reativá-los.

Por isso, aqui deixo o código para verificar e reiniciar os serviços.

Seu “fichero.sh” Procure por “PATH” e insira a localização dos arquivos solicitados:

#!/bin/bash
services=(zoneminder webmin tomcat6 subsonic apache2)

for name in ${services[@]}
do
        SERVICEEXIST=`sudo service $name status|grep -n "is running"|cut -d: -f1`
	if [ "$SERVICEEXIST" != "1" ] ; then
    		service $name start
	fi
done

procesos=(amuled utserver lircd)
for name in ${procesos[@]}
do
	PROCESSNAME=`ps -A|grep $name|cut -d: -f3|cut -d" " -f2|tail -1`
        if [ "$PROCESSNAME" != "$name" ]; then
           case $name in
   		"amuled") sudo service amule-daemon restart; break;;
   		"utserver") RUTA/utserver -daemon; break;;
                "lircd") sudo service lirc start; break;;
  	   esac
        fi
done
pyload=`pyLoadCore --status`
if [ $pyload == "false" ];then
	pyLoadCore --daemon
fi
nxserver=`sudo /usr/NX/bin/nxserver --status|grep -n "is running"|cut -d: -f1`
if [ $pyload == "false" ];then
        sudo /usr/NX/bin/nxserver --daemon
fi
SERVICEEXIST=`sudo service proftpd status|grep -n "currently running"|cut -d: -f1`
if [ $SERVICEEXIST == "false" ];then
        sudo service proftpd start
fi
SERVICEEXIST=`sudo service ssh status|grep -n "running"|cut -d: -f1`
if [ $SERVICEEXIST == "false" ];then
        sudo service ssh start
fi
SERVICEEXIST=`sudo service mysql status|grep -n "running"|cut -d: -f1`
if [ $SERVICEEXIST == "false" ];then
        sudo service ssh start
fi
SERVICEEXIST=`sudo service cups status|grep -n "running"|cut -d: -f1`
if [ $SERVICEEXIST == "false" ];then
        sudo service ssh start
fi

Uma vez salvos, executamos:

sudo crontab -e

E no arquivo que se abre, inserimos:

*/1 * * * * bash RUTA/fichero.sh

Onde “1” é o número de minutos que devem se passar entre as verificações.

Relacionados