Hallo liebe SoSi Community,
Ich nutze das Start/Stop und Restart Script. Nun wollte ich ein Autorestart einbauen der ja ganz einfach via Cron. Dann habe ich
crontab -e in SSH eingegeben und das hinzugefügt
* 6 * * * * /etc/init.d/cssserver1 restart jeden Tag ein Autorestart. Damals ging es auch noch mit dem Script nur dieses mal nicht. Eigendlich wir ja in
/var/mail/root eine Meldung erstellt ob es funktioniert hat oder nicht. Leider wird keine Meldung erstellt. Habe dann mal getestet ob Cron überhaupt an ist aber das ist zu 100% an. Habe mir die
/var/log/syslog angesehen da steht auch nix nur das Cron erfolgreich restartet wurde. Denke es liegt am Script. Danke schonmal im vorraus für euere hilfe :D
#! /bin/bash
#
# Start the Counter-Strike: Source dedicated server.
#
# !!!!!!!!!!!!!! CHANGE THIS TO THE USER YOU USE FOR YOUR SERVER !!!!!!!!!!!!!!!
CS_USER=USER
# # DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS!
DIR=/home/USER/css/
TASKSET=""
DAEMON=srcds_run
PARAMS="-game cstrike +maxplayers <PLAYER> +map de_dust2 +ip <ROOT IP> -port <PORT> +exec server.cfg -autoupdate"
NAME=CSS-MG
DESC="CS:S dedicated server $NAME"
# No edits (should be) necessary beyond this line
PATH=/bin:/usr/bin:/sbin:/usr/sbin
if [ ! -x `which awk` ]; then echo "You need awk for this script"; exit 1; fi
if [ ! -x `which screen` ]; then echo "You need screen (the program, moron!) for this script"; exit 1; fi
if [ `whoami` = root ]
then
usagetype=root
else
usagetype=nonroot
fi
start() {
if [ ! -d $DIR ]; then echo " ... No such directory: $DIR!"; exit 1; fi
if [ ! -x $DIR/$DAEMON ]; then echo "$DIR/$DAEMON does not exist or is not executable!"; exit 1; fi
if status; then echo " ... $DESC: $NAME is already running!"; exit 1; fi
case "$usagetype" in
root)
su - $CS_USER -c "cd $DIR; ulimit -c unlimited; screen -AmdS $NAME $TASKSET ./$DAEMON $PARAMS"
;;
nonroot)
cd $DIR ; ulimit -c unlimited; screen -AmdS $NAME $TASKSET ./$DAEMON $PARAMS
;;
esac
}
stop () {
if ! status; then echo " ... $DESC $NAME could not be found. Probably not running."; exit 1; fi
case "$usagetype" in
root)
tmp=$(su - $CS_USER -c "screen -ls" | awk -F . "/(\d*)$NAME / {print \$1}" | awk '{print $1}')
su - $CS_USER -c "screen -r $tmp -X quit"
;;
nonroot)
screen -r $(screen -ls | awk -F . "/(\d*)$NAME / {print \$1}" | awk '{print $1}') -X quit
;;
esac
}
status () {
case "$usagetype" in
root)
su - $CS_USER -c "screen -ls" | grep [.]$NAME[[:space:]] > /dev/null
;;
nonroot)
screen -ls | grep [.]$NAME[[:space:]] > /dev/null
;;
esac
}
watch () {
if ! status; then echo "$DESC $NAME could not be found. Probably not running."; exit 1; fi
case "$usagetype" in
root)
tmp=$(su - $CS_USER -c "screen -ls" | awk -F . "/(\d*)$NAME / {print \$1}" | awk '{print $1}')
tmp2=$(su - $CS_USER -c "screen -r $tmp")
if [[ "$tmp2" =~ /dev/pts/([0-9]+) ]]
then
chmod o+rw /dev/pts/${BASH_REMATCH[1]}
su - $CS_USER -c "screen -r $tmp"
fi
;;
nonroot)
screen -r $(screen -ls | awk -F . "/(\d*)$NAME / {print \$1}" | awk '{print $1}')
;;
esac
}
case "$1" in
start)
echo "Starting $DESC: $NAME"
start
echo " ... done."
;;
stop)
echo "Stopping $DESC: $NAME"
stop
echo " ... done."
;;
restart)
echo "Restarting $DESC: $NAME"
status && stop
start
echo " ... done."
;;
status)
if status
then echo "$DESC: $NAME is UP"
else echo "$DESC: $NAME is DOWN"
fi
;;
watch)
watch
;;
*)
echo "Usage: $0 {start|stop|status|restart|watch}"
exit 1
;;
esac
exit 0
Lg
LeXx