Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: sourceserver.info. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

  • »Canc3lL0g0ut« ist der Autor dieses Themas

Beiträge: 881

Wohnort: L.E.

Beruf: KiN im Betriebsdienst

Rootserver vorhanden: Nein

  • Nachricht senden

1

Mittwoch, 16. Februar 2011, 18:07

Startscript für mehrere Server

Hallo Ihr lieben,

ich mal wieder. Ich verwende bei mir auf dem Server folgendes Startscript:

Spoiler Spoiler

#! /bin/bash
#
# Start the Counter-Strike: Source dedicated server.
#
# AUTHORS :
#
# Julien Escario ( <!-- e --><a href="mailto:pandemik@azilog.net">pandemik@azilog.net</a><!-- e --> )
# &
# Cedric Rochat ( <!-- e --><a href="mailto:crochat@younics.org">crochat@younics.org</a><!-- e --> )
# &
# Cmdr._Firewalker ( <!-- e --><a href="mailto:cmdr._firewalker@web.de">cmdr._firewalker@web.de</a><!-- e --> )
#
# ===========================================
#
# What you need:
#
# Linux :)
# awk
# screen
# the srcds_l & cstrike files (obtainable via steam)
#
# How to use:
#
# Edit the CS_USER-Var to the user running your cs-servers
# Edit the DIR-Var to fit your system (just contains the path to the dir that contains srcds_run)
# Edit the PARAMS-Var to fit your needs
# - standard is startup as internet server
# if you use multiple scripts on one system you should change the NAME-var (otherwise
# all will be stopped if you run the script with "stop", and status will be useless)
#
# When this is done, copy the file to /etc/rc.d/init.d (or whereever your system stores the
# scripts for starting the services) and set the execute permission.
# Now you can link the script to your runlevel-dir, here's an example for runlevel 3:
# ln -s /etc/rc.d/init.d/srcds /etc/rc.d/rc3.d/S90srcds
# ln -s /etc/rc.d/init.d/srcds /etc/rc.d/rc3.d/K50srcds
# or use update-rc.d if you got a system using that tool (like Debian, see manpage)
#
# Or use it manually like:
# ./srcds start
# ./srcds stop
#
# To see the server-console start the script with the parameter "watch".
#
# DOC by jwm (jwm@counter-strike.de)

# !!!!!!!!!!!!!! CHANGE THIS TO THE USER YOU USE FOR YOUR SERVER !!!!!!!!!!!!!!!
CS_USER=srcds
PATH=/bin:/usr/bin:/sbin:/usr/sbin

# # DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS!
DIR=/home/srcds/orangebox

DAEMON=srcds_run

# LAN server:
# PARAMS="-game cstrike -nomaster -insecure +sv_lan 1 +maxplayers 16 +map de_dust"
# Internet server:
PARAMS="-game cstrike +map de_dust2 +maxplayers 20 +port 27015 -autoupdate"

NAME=SourceServer
DESC="CS:S dedicated server 1"

# No edits (should be) necessary beyond this line

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 ; screen -AmdS $NAME ./$DAEMON $PARAMS"
;;
nonroot)
cd $DIR ; screen -AmdS $NAME ./$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 . "\$2 ~ /^$NAME[[:space:]].*/ {print \$1}" | awk '{print $1}')
su - $CS_USER -c "screen -r $tmp -X quit"
;;
nonroot)
screen -r $(screen -ls | awk -F . "\$2 ~ /^$NAME[[:space:]].*/ {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 . "\$2 ~ /^$NAME[[:space:]].*/ {print \$1}" | awk '{print $1}')
su - $CS_USER -c "screen -r $tmp"
;;
nonroot)
screen -r $(screen -ls | awk -F . "\$2 ~ /^$NAME[[:space:]].*/ {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}\nWhile watching press ctrl-a, ctrl-d to stop watching without stopping the server."
exit 1
;;

esac


exit 0


Nun ist dies bei einem Server ja kein Problem, gerade was einen Restart oder "watch" ausmacht. Nun, da wir nun 2 Server, vielleicht bald 3 Server haben (auf ein und derselben Maschine) habe ich das Problem, wenn ich "./run.sh watch" eingebe immer noch ein "Screen" Terminal / PID angeben muss. Ist blöd wenn die GameServer dann jeden morgen um 6 neu gestartet werden sollen, wenn er nicht weiß welchen Server er neustarten soll. Nun suche ich ein Startscript, womit ich 3 Server unabhänig voneinander starten, stoppen und "überwachen" kann. Kenn soetwas jemand?

Für Eure Hilfe wäre ich sehr Dankbar
24/7 Teamspeak³ Server:


Linux is like a wigwam → No windows. No gates. Apache inside.

1. Frage des Admin: was wurde vorher verändert?
2. Antwort des Users: nichts
3. Frage des Admin: was wurde verändert, bevor NICHTS verändert wurde?

Ene mene muh gebasht wirst du,
ene mene miste headOr durch die Kiste,
ene mene meck kaum siehste mich schon fliegste weg :D

Impact

Super Moderator

Beiträge: 1 276

Rootserver vorhanden: Nein

  • Nachricht senden

2

Mittwoch, 16. Februar 2011, 18:52

Vielleicht wäre das hier etwas für dich?
http://downloads.gugy.eu/bash/server.sh/server.tar.gz

Nutzen wir auch :D

MfG
Impact

  • »Canc3lL0g0ut« ist der Autor dieses Themas

Beiträge: 881

Wohnort: L.E.

Beruf: KiN im Betriebsdienst

Rootserver vorhanden: Nein

  • Nachricht senden

3

Mittwoch, 16. Februar 2011, 19:38

Ich hab mir jetzt mal die einzelnen Dateien angeschaut. Kann ich damit 3 Server unabhänig starten, restarten, stoppen und überwachen?

Sieht iwie nicht dannach aus. Aber ich kann mich auch täuschen ;) und ich lass mich auch gern eines besseren belehren. :zwinker:
24/7 Teamspeak³ Server:


Linux is like a wigwam → No windows. No gates. Apache inside.

1. Frage des Admin: was wurde vorher verändert?
2. Antwort des Users: nichts
3. Frage des Admin: was wurde verändert, bevor NICHTS verändert wurde?

Ene mene muh gebasht wirst du,
ene mene miste headOr durch die Kiste,
ene mene meck kaum siehste mich schon fliegste weg :D

Impact

Super Moderator

Beiträge: 1 276

Rootserver vorhanden: Nein

  • Nachricht senden

4

Mittwoch, 16. Februar 2011, 22:52

Yup

Das Script ist für jeden Server einzeln
sprich für jeden Server ein Script + Configdatei.


MfG
Impact

  • »Canc3lL0g0ut« ist der Autor dieses Themas

Beiträge: 881

Wohnort: L.E.

Beruf: KiN im Betriebsdienst

Rootserver vorhanden: Nein

  • Nachricht senden

5

Freitag, 18. Februar 2011, 09:12

Ahh, ok. Hab die Tage noch außerhalb zu tun, dann kann ich es mal testen. Danke :bestteam:
24/7 Teamspeak³ Server:


Linux is like a wigwam → No windows. No gates. Apache inside.

1. Frage des Admin: was wurde vorher verändert?
2. Antwort des Users: nichts
3. Frage des Admin: was wurde verändert, bevor NICHTS verändert wurde?

Ene mene muh gebasht wirst du,
ene mene miste headOr durch die Kiste,
ene mene meck kaum siehste mich schon fliegste weg :D

  • »Canc3lL0g0ut« ist der Autor dieses Themas

Beiträge: 881

Wohnort: L.E.

Beruf: KiN im Betriebsdienst

Rootserver vorhanden: Nein

  • Nachricht senden

6

Sonntag, 20. Februar 2011, 17:21

OK, das Script von Euch ist net schlecht, aber ... mich persönlich stört, dass ich bei allen Servern extra schauen muss (ich mags bequemer ;))
Ich such etwas womit ich alle Server "Zentral" steuern kann - also in ein Verzeichnis und von dort aus Server starten, stoppen überwachen, egal in welchem Verzeichnis sich dieser Server befindet.
24/7 Teamspeak³ Server:


Linux is like a wigwam → No windows. No gates. Apache inside.

1. Frage des Admin: was wurde vorher verändert?
2. Antwort des Users: nichts
3. Frage des Admin: was wurde verändert, bevor NICHTS verändert wurde?

Ene mene muh gebasht wirst du,
ene mene miste headOr durch die Kiste,
ene mene meck kaum siehste mich schon fliegste weg :D

Koffein

Fortgeschrittener

Beiträge: 353

Rootserver vorhanden: Nein

  • Nachricht senden

7

Montag, 21. Februar 2011, 17:00

Hey, nimm doch das Script aus der Wiki ;)
http://sourceserver.info/wiki/installati…andalone/script

Dort musst du für jeden Server eine Config eintragen, hast aber anschließend die Möglichkeit diese dann in eine Liste einzutragen und die Server dann über die Liste zu (neu-)starten, stoppen, etc...

Wenn du dann noch die Abkürzung für die Shells nutzt ist es ganz bequem :)
Bin gerade dabei 2 Funktion zu implementieren, einmal den Demoupload bzw generellen Upload von Dateien auf einen FTP Server und das Servercleaner Script.

Wenn ich das sowei fertig habe kann Dead_Eye da ja mal rüberschauen und das evenutell in die Wiki hochladen ;)
Sind ja schließlich nur Scripte aus der Wiki miteinander kombiniert und etwas modifiziert.

Ähnliche Themen

Verwendete Tags

Linux, Source, Startscript