Einerseits will er ein Script was ständig die Server kontrolliert, andererseits will er dafür keinen Cronjob laufen lassen. Ja soll ma denn dafür extra nen Daemon bauen der dann die ganze Zeit läuft? Wäre ja nach deiner Ansicht noch schlechter als ein Cronjob.Und Cronjob ist da sicherlich eine der elegantesten Lösungen.
@Hackbarrt, dein Skript macht für mich nicht wirklich Sinn, wenn es dauernd looped, man könnte die unteren Skripte in eine Endlosschleife mit einem sleep 60 packen und dieses Skript dann einmal ausführen und es im Hintergrund laufen lassen, ich würd es aber wie folgt machen. Darf man fragen bei welchem Anbieter du bist?
Ich habe fix ein Skript für Cod2 umgeschrieben, hier das Beispiel, da ich zwei Server laufen habe muss ich nach dem korrekten Port suchen. Ein Skript das 2 Server verwaltet zu schreiben hab ich jetzt keinen bock und ist auch nicht nötig finde ich:
CoD2 Cronjob
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
#!/bin/sh
# CoD2 Restartskript
cod2dir="/home/cod2/"
process=`ps auxw | grep "net_port 28961" | grep -v grep | awk '{print $11}'`
cd $cod2dir
if [ -z "$process" ]; then
echo "Der laeuft nicht und muss neu gestartet werden!"
screen -A -m -d -S cod2 /home/cod2/cod2_lnxded +set fs_game admiral_mod_1_550 +set dedicated 2 +set net_ip 62.75.216.170 +set net_port 28961 +set sv_punkbuster 1 +exec public.cfg
else
echo "Der Server laeuft bereits!"
fi
exit 0 |
|
Wenn du dieses Script jede Minute ausführst bist du auf der sicheren Seite.
Ich hatte zwar nie Probleme, aber werde es jetzt einmal selber als Cronjob aufsetzen, wichtig dabei ist, dass du den CoD2 Cronjob als CoD2 User aufsetzt und den TS2 Cronjob als TS2 User, sonst müsste man etwas am Code ändern damit die Server nicht als root laufen.
Allerdings startet TS2 nicht bei vorhandenem pidfile.
TS2 Cronjob
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
#!/bin/sh
# TS2 Restartskript
teamspeakdir="/home/teamspeak2/t*/"
tspid="tsserver2.pid"
process=`ps auxw | grep server_linux | grep -v grep | awk '{print $11}'`
cd $teamspeakdir
if [ -z "$process" ]; then
echo "Der scheiss Server laeuft nicht und muss neu gestartet werden!"
rm $tspid
./teamspeak2-server_startscript start
else
echo "Der Server laeuft bereits!"
fi
exit 0 |
|
So, ja ich weiss, ich habe das Skript mehr oder weniger aus 2 anderen zusammen gewürfelt, aber Hauptsache ist wohl immer noch, dass es klappt und das tut es bei mir wunderbar!!
So nun die beiden Skripte in das jeweilige Homeverzeichnis von Cod2 und TS2 legen und einen neuen Cronjob als CoD2 bzw. TS2 User einrichten:
TS2 als Ts2 User:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
5:
|
crontab -e
danach "i" für insert
jetzt diese Zeile einfügen
* * * * * /pfad/zu/dem/skript/ts2chk.sh >/dev/null 2>&1 |
|
Danach ESC drücken dann ":wq!" schreiben (steht unten links im Bild)
CoD2 als CoD2 User:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
5:
6:
7:
|
crontab -e
danach "i" für insert
jetzt diese Zeile einfügen
* * * * * /pfad/zu/dem/skript/cod2chk.sh >/dev/null 2>&1
Danach ESC drücken dann ":wq!" schreiben (steht unten links im Bild) |
|
Nun wird jede Minute gechecked, ob TS2 und CoD2 Server laufen und ggf. werden diese neu gestartet. Hab das Skript eben mit meinem Server getestet und hat wunderbar geklappt.
Achtung wenn du mehrere Server überwachen willst muss das Skript etwas angepasst, unter anderem Namen gespeichert und ebenfalls im crontab eingetragen werden!
Also dann auch das Suchkriterium ändern (Port anpassen z.B.) und bei "screen -A -m -d -S cod2" cod2 ersetzen durch cod2_1 oder cod2_2 oder cod2_28961 o.ä., so dass die verschiedenen Screens der einzelnen Server verschiedenene Namen haben.
Viel Erfolg.
Original von Herr_Hackbarrt
kann dir da auch helfen die anderen admins machen sowas ja ned weils ziemlich die egos sind na egal..
Wie du siehst habe ich das eben extra für dich umgebaut und 30 Minuten meiner Zeit geopfert, um die Skripte fitzumachen, vorsichtig bei solchen Äusserungen, kann man schnell in falschen Hals kriegen und rummaulen hat noch nie was geholfen.
Skripte an eigene Serverumgebung anpassen nicht vergessen!