: 16 marca 2011, 14:22
Sprawdz tak:
Kod: Zaznacz cały
#!/bin/bash
czas=33 #co ile sekund ma sprawdzac czy serwer online
sciezka=/home/serwery/ #sciezka do odpalenia skryptu serwera
skrypt=serwer.sh # nazwa skryptu
screenname=cs16 #nazwa poszukiwanego screena
log=/home/serwery/cs16/logi
while [ true ] ; do # petla nieskonczonosci
status=$(php status.php) #odwolanie do skryptu w php
if [ $status = 1 ]
then
echo "`date +%d/%m/%Y--%H:%M:%S` Serwer dziala!"
else
echo "`date +%d/%m/%Y--%H:%M:%S` Serwer nie dziala! Uruchamianie ponowne"
pid=`screen -ls |grep $screenname |awk -F . '{print $1}'`
if [ ! -z ${pid} ]
for proc in ${pid
[*]}
do
kill ${proc}
done
fi
cd $sciezka && sh -c $sciezka$skrypt&
echo "Serwer zrestartowany o `date +%d/%m/%Y--%H:%M:%S`" >> $log/restarty.txt #logowanie restartu serwera
fi
sleep $czas
done