↓ Перейти к основному содержимому
  1. Статьи/

Скрипт для автоматического перезапуска серверов

Rubén Infante Docio
Автор
Rubén Infante Docio
Инженер-программист

Долгое время я настраивал сервер дома с несколькими сервисами, медиацентром и так далее…

Главное в сервере — чтобы его сервисы работали корректно как можно дольше, поэтому необходимо проверять, все ли они активны. Однако из-за ошибок иногда эти серверы перестают работать, поэтому необходимо время от времени проверять, остаются ли они активными, а если нет — переактивировать.

Вот почему я оставляю вам код для проверки и перезапуска сервисов.

Твоя «fichero.sh» Найдите «PATH» и введите местоположение запрошенных файлов:

#!/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

После сохранения мы выполняем:

sudo crontab -e

И в открывающемся файле мы вводим:

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

Где «1» — это количество минут, которые должны пройти между проверками.

Related