Cod + ts script |
|
|
hi !
ich bräuchte ein script das den den server beendet und dann wieder startet wenn er einfirert. währe subba wenn mir da jemand 1 posten würde.
des weitern noch ne frage: es is doch total ob des n script für cod is oder nicht wenn ich des auf ne andere ausführbare datei anwende zB teamspeak. jedoch müsste es auch hier den server erst stoppen und dann wieder starten. da ich ein absolutes genie im scripting bin ^^ ( achtung selbstironie) würde ich auch hier einen gütigen scriper bitten mir zu helfen. mfg hacki
|
|
|
|
|
|
|
der grund is dass unser bescheuerter root provide zZ dauerd lags hat. das kann manchmal dazu führen dass der server einfriert bzw der ts abkackt aber die server_linux -PID=tsserver2.pid noch läuft. daher brauch ich was das die erst killt und dann iwder starten. selbiges gilt für den cod server
|
|
|
|
|
|
|
also wenn der server crasht dann läuft der prozess
./server_linux -PID=tsserver2.pid nicht mehr. daher hab ich mir gedacht könnte man desned mit nem loop machen weil ich finde n crontab da ziemlich übertrieben ? irgendwelche idden dazu weil ich mir ned so recht sicher bin ob ich das mit nem normalen loop script machen kann
|
|
|
|
|
|
|
#!/bin/bash
cd /home/flesh/codserver
while true; do
./cod_lnxded +set net_port 28965 +set net_ip 213.202.216.159 +exec psyserver.cfg +map_rotate
done
das is n sh file packen und einfach mit sh name.sh ausfuhren sollte das prob losen aber den server fixen währ halt noch besser
kann dir da auch helfen die anderen admins machen sowas ja ned weils ziemlich die egos sind na egal..
ps: musst halt an deinn server anpassen is klar ne
|
|
|
|
|
yoda
Böser Admin
Dabei seit: 21.01.2004
Beiträge: 12.269

|
|
Original von Herr_Hackbarrt
kann dir da auch helfen die anderen admins machen sowas ja ned weils ziemlich die egos sind na egal..
Darf ich mal fragen, wie das gemeint ist?
__________________ "Fürs Internet sollte das Baumhaus-Prinzip gelten:
Wer zu alt ist, um ohne Hilfe reinzukommen, soll uns darin auch keine Vorschriften machen."
Diskutiere nie mit einem Idioten - zuerst zwingt er Dich auf sein Niveau herab und dann schlägt er Dich mit Erfahrung...
|
|
|
|
|
sm0g23
Tele-Tubbie
Dabei seit: 01.02.2006
Beiträge: 116

|
|
CoD2 + Ts2 Checkskript: Die Lösung! |
 |
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!
__________________ --=[ www.WobMob.de ]=--
Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von sm0g23: 14.05.2006 22:28.
|
|
|
|
|
yoda
Böser Admin
Dabei seit: 21.01.2004
Beiträge: 12.269

|
|
Na ich denke mal zumindest sind sich hier alle einige einig, daß man Infos etc. im Interesse aller teilen sollte und hier sind ja einige, die ihre Freizeit opfern und was für die Community tun...
Von daher mal wieder ein dickes RESPEKT und DANKE an alle, die mithelfen! Und hast ja klar gestellt, daß Du niemanden hier meintest, von daher vergessen wir es und weiter geht´s, alle einverstanden?
@sm0g23:
Nice work, danke schön, verstehe zwar nicht alles, weil ich nicht so der Linux-Freak bin, aber grundsätzlich denke ich hab ich es kapiert...
__________________ "Fürs Internet sollte das Baumhaus-Prinzip gelten:
Wer zu alt ist, um ohne Hilfe reinzukommen, soll uns darin auch keine Vorschriften machen."
Diskutiere nie mit einem Idioten - zuerst zwingt er Dich auf sein Niveau herab und dann schlägt er Dich mit Erfahrung...
|
|
|
|
|
sm0g23
Tele-Tubbie
Dabei seit: 01.02.2006
Beiträge: 116

|
|
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|