Mascaren
05-09-2004, 16:13
Man kennt es vielleicht. Aus irgendeinem Grund hat sich der TS Server mal verabschiedet. Gründe will ich nu nicht aufzählen.
Wenn nun also nicht eh der Linux-Server nen Reboot durchgeführt hat und das TS Startscript dabei automatisch aufgerufen wurde, merkt man es als Admin erst wenn man selber Online geht, den Status abfragt oder einen die User via ICQ zuspammen warum der TS nicht zu erreichen ist.
Ich hab das ganze als Linuxuser einfach mal mit einem kleinen Bash-Script gelöst das ich über die Crontab eines "nonroot" Users in regelmäßigen Abständen aufrufen lasse.
Vielleicht nicht das proffesionellste Script aber nach eingehenden Tests meine ich doch das es seinen Dienst erfüllt.
Bei Aufruf checkt es ob Prozesse mit Namen server_linux aktiv sind.
Ist dem nicht so sorgt es dafür das das Startscript vom TS aufgefrufen wird
Als kleines Feature schickt es in jedem Fall eine Mail an eine vordefinierte Adresse.
Um sich selber nicht mit Mails dicht zu spammen sollte die reine Umsetzung dieses Scriptes also nicht alle 5 Minuten aufgerufen werden ;)
-------------------------------
#!/bin/bash
# set -x
#declarations
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin
OUTFILE='/tmp/outfile.txt'
DATUM=`date`
#preparings
echo "To: <your mail here>" >>$OUTFILE
echo "From: Server Reportingscripts <root>" >>$OUTFILE
echo "Subject: Server Teamspeakreport from $DATUM" >>$OUTFILE
#Workouts
ps -fC server_linux >> $OUTFILE
if ! [ $? -eq 0 ]
then
echo "The Teamspeak runningchecker reports that the Server is not running">>$OUTFILE
echo "Startprocedures initialized" >>$OUTFILE
echo "----------------------------" >>$OUTFILE
cd <your ts_server path here> >>$OUTFILE
if [ -e tsserver.pid ]
then
echo "Found file tsserver.pid" >>$OUTFILE
echo "Hint for a TS-Crash" >>$OUTFILE
rm tsserver.pid
if [ $? -eq 0 ]
then
echo "File tsserver.pid deleted" >>$OUTFILE
echo "TS-Server startscript initiated " >>$OUTFILE
./teamspeak2-server_startscript start >>$OUTFILE
else
echo "File tsserver.pid could not deleted" >>$OUTFILE
echo "Log on as root an resolve the Problem" >>$OUTFILE
fi
else
./teamspeak2-server_startscript start >>$OUTFILE
fi
echo "----------------------------" >>$OUTFILE
else
UPTIME=`ps -fC server_linux | grep " 1 " | awk '{print $5}'`
USER=`ps -fC server_linux | grep " 1 " | awk '{print $1}'`
echo "---------" >>$OUTFILE
echo "The Teamspeak runningchecker reports that the Server is still up since $UPTIME" >>$OUTFILE
echo "Processes opened by User $USER" >>$OUTFILE
echo "State of Server is OK" >>$OUTFILE
fi
cat $OUTFILE | /usr/sbin/sendmail <your mail here>
rm $OUTFILE
------------
PS: Verbesserungsvorschläge sind immer willkommen :D
Wenn nun also nicht eh der Linux-Server nen Reboot durchgeführt hat und das TS Startscript dabei automatisch aufgerufen wurde, merkt man es als Admin erst wenn man selber Online geht, den Status abfragt oder einen die User via ICQ zuspammen warum der TS nicht zu erreichen ist.
Ich hab das ganze als Linuxuser einfach mal mit einem kleinen Bash-Script gelöst das ich über die Crontab eines "nonroot" Users in regelmäßigen Abständen aufrufen lasse.
Vielleicht nicht das proffesionellste Script aber nach eingehenden Tests meine ich doch das es seinen Dienst erfüllt.
Bei Aufruf checkt es ob Prozesse mit Namen server_linux aktiv sind.
Ist dem nicht so sorgt es dafür das das Startscript vom TS aufgefrufen wird
Als kleines Feature schickt es in jedem Fall eine Mail an eine vordefinierte Adresse.
Um sich selber nicht mit Mails dicht zu spammen sollte die reine Umsetzung dieses Scriptes also nicht alle 5 Minuten aufgerufen werden ;)
-------------------------------
#!/bin/bash
# set -x
#declarations
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin
OUTFILE='/tmp/outfile.txt'
DATUM=`date`
#preparings
echo "To: <your mail here>" >>$OUTFILE
echo "From: Server Reportingscripts <root>" >>$OUTFILE
echo "Subject: Server Teamspeakreport from $DATUM" >>$OUTFILE
#Workouts
ps -fC server_linux >> $OUTFILE
if ! [ $? -eq 0 ]
then
echo "The Teamspeak runningchecker reports that the Server is not running">>$OUTFILE
echo "Startprocedures initialized" >>$OUTFILE
echo "----------------------------" >>$OUTFILE
cd <your ts_server path here> >>$OUTFILE
if [ -e tsserver.pid ]
then
echo "Found file tsserver.pid" >>$OUTFILE
echo "Hint for a TS-Crash" >>$OUTFILE
rm tsserver.pid
if [ $? -eq 0 ]
then
echo "File tsserver.pid deleted" >>$OUTFILE
echo "TS-Server startscript initiated " >>$OUTFILE
./teamspeak2-server_startscript start >>$OUTFILE
else
echo "File tsserver.pid could not deleted" >>$OUTFILE
echo "Log on as root an resolve the Problem" >>$OUTFILE
fi
else
./teamspeak2-server_startscript start >>$OUTFILE
fi
echo "----------------------------" >>$OUTFILE
else
UPTIME=`ps -fC server_linux | grep " 1 " | awk '{print $5}'`
USER=`ps -fC server_linux | grep " 1 " | awk '{print $1}'`
echo "---------" >>$OUTFILE
echo "The Teamspeak runningchecker reports that the Server is still up since $UPTIME" >>$OUTFILE
echo "Processes opened by User $USER" >>$OUTFILE
echo "State of Server is OK" >>$OUTFILE
fi
cat $OUTFILE | /usr/sbin/sendmail <your mail here>
rm $OUTFILE
------------
PS: Verbesserungsvorschläge sind immer willkommen :D