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.

DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

1

Mittwoch, 4. Juli 2007, 16:49

[Linux] Wartungs-Script (install/update/start/stop)

Beschreibung: Ich habe ein Script geschrieben, mit dem man bequem und schnell auf einem Root-Server sämtliche Valve-Server installieren, updaten, starten|stoppen|neustarten und optional einen komprimierten Mappool für den Fastdownload erstellen kann. Es arbeitet zentral mit Verlinkungen, so wie es Gameserverprovider auch machen. Das Script kann als Cronjob laufen und es ist möglich schnell und einfach den Mod zu switchen.

Das Script ist auf unserem Rootserver im Einsatz. Bisher hat es sich gelohnt, soviel Arbeit ins "scripten" zu investieren. Bugs, die ich im Betrieb finde, entferne ich und stelle das Update hier zur Verfügung.

Last Update: 29.07.07
Das war das letzte Update. Zur Zeit bin ich dabei das Script komplett neu zu schreiben. Es sollen auch Mods von 3.Herstellern unterstützt werden und die Parameterübergabe soll wie bei anderen Unix Programmen funktionieren. Das Script werde ich komplett auf englisch schreiben. Die Funktionen werden aus dem alten Script übernommen.

Vesion 1.2.3
UTF8-Codierung
ASCII-Codierung


Parameter:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-i  / --install          =  Server einrichten / Erstinstallation
-u  / --update           =  ValveServer updaten

-m   =  Die Maplist wird erstellt. (Nur bei HL2 Mods),
        gelöschte Links zur maplist.txt und den wad-Dateien werden neu
        gesetzt und der Mapcycle aller Server wird überprüft
-mc  =  Mappool komprimieren. Alte Dateien bleiben erhalten
        und die Maplist wird neu erstellt. (Nur bei HL2 Mods)
-bl  =  Entfernt alle Links ohne Ziel (Brokenlinks)
-lc     Komprimiert logdateien
-lcs     Komprimiert logdateien (keine Meldungen)
-s  / --silent           =  Update ohne Ausgabe auf dem Bildschirm
--backup                 =  Ein Backup vom Mappool eines Mods oder
                            vom gesamten Mappool wird erstellt
--version                =  Versionsinfo
--debug                  =  Variablen werden ausgegeben
start    <Servername>    =  Server wird gestartet
restart  <Servername>    =  Server wird neugestartet
stop     <Servername>    =  Server wird gestoppt
config                   =  Server konfigurieren



Funktionen:
  • Mod und Verzeichnissnamen werden in der source.cfg definiert
  • Verzeichnisse werden automatisch angelegt
  • hldsupdatetool.bin wird heruntergeladen und gestartet
  • zu installierende Mods können in der source.cfg ausgwählt werden
  • eine Konfigurationsdatei ist vorhanden (so muss das Script selber nicht verändert werden)
  • es wird zuerst für jede HL1 und HL2 Modifikation ein gemeinsamer Mappool angelegt
  • für alle HL2 Modifikation wird eine maplist.txt angelegt (wird für das Mani-Admin-Plugin benötigt)
  • der Mappool kann für den späteren Einsatz komprimiert werden (alte Dateien bleiben unberührt) und die komprimierten Dateien werden in ein neues Verzsichnis verschoben oder bleiben im gleichen Verzeichnis. Es kann über die source.cfg eingestellt werden
  • alte komprimierte Dateien, von denen das original nicht mehr im Mappool ist, werden gelöscht
  • wird eine Map zum Mappool hinzugefügt, ist sie automatisch auf allen Servern vorhanden (für HL2 Mods kann die maplist.txt mit dem script automatisch erneuert werden)
  • der Mapcycle aller installierten Server kann auf Schreibfehler überprüft werden.
  • ein zentraler Server wird heruntergeladen (dadurch ist die Installation sehr platzsparend)
  • die Server auf denen später gespielt wird, werden verlinkt. Die Dateien werden durch das Script einzeln verlinkt und vom Mappool werden die einzelnen Verzeichnisse verlinkt
  • Standardkonfigurationen für die einzelnen Server sind mit enthalten und können beliebig geändert werden
  • fehlerhafte Links können entfernt werden
  • gelöschte Links werden beim Update wieder neu gesetzt
  • es gibt die Möglichkeit, das Script so laufen zu lassen, dass es keine Meldungen ausgibt (wichtig für den cronjob)
  • eine Überprüfung und eine eventuelle Beendigung der laufenden steam Prozesse, die beim updaten laufen, findet statt (so wird verhindert, dass der Steaminstaller 2 mal läuft, wenn ein Prozess hängen geblieben ist)
  • das Script kann umbenannt werden (die Konfigurationsdatei muss den gleichen Namen haben)
  • sehr schnelles einrichten neuer Server (zwei Minuten)
  • flexibel, es können selber Verzeichnisse definiert werden, die verwendet werden sollen
  • das Script verhindert die Ausführung als root oder einem anderen falschen User
  • eine Überprüfung der Programme wget, bzip2 und screen findet statt
  • der symbolische Link 'uncompress' wird überprüft und ggf. angezeigt wie man den Link per Hand erstellen kann (sonst kann hldsupdatetool.bin nicht entpackt werden)
  • Installierte Server können über eine Art Menü konfiguriert werden (mod/startmap/maxplayers/tickrate/...)
  • Startscript für die Server mit Menü ist integriert (./source.sh start/stop/restart servername oder nur ./source.sh start/stop/restart)
  • eine Backupfunktion für einen Teil bzw. für den gesamten Mappool ist vorhanden.
  • logdateien, der Server können komprimiert werden
  • Updateparameter vom Steamupdater für Hl2-Mods lässt sich erweitern (z.B. -beta srcds xxxx)


[hr]

[tt]
Changelog:
1.2.3
+Parameter von Steamupdater lässt sich jetzt in der Datei source.cfg definieren. Durch die vielen SRCDS Betaversionen musste ich immer manuell das Script abändern. So muss man nur noch den Parameter ":hl2_update_parm =" in der Datei source.cfg definieren.

Changelog:
1.2.2
-Logs vom gleichen Tag werden nicht komprimiert. So entstehen keine doppelten Dateien.

Changelog:
1.2.1
+logdateien können jetzt komprimiert werden (./source.sh -lc oder ./source.sh -lcs)

Changelog:
1.2
-kleinere Bugs wurden entfernt
+Backupfunktion für den Mappool
+Überprüfung vom Mapcycle der installierten Server

1.1
-Custom-Dateien im Mappool, die "res", "ztmp", "bz2" beinhaltet haben, wurden nicht komprimiert.
-maplist.txt wird nicht versucht zu schreiben, wenn kein maps-Verzeichnis im Mappool vorhanden ist (gmod9)
+neue "wad"-Dateien werden jetzt mit dem Befehl -m / -mc verlinkt

1.0 (großer Bug wurde entfernt)
+Die Art der Zuordnung der Modnamen und Verzeichnisnamen wurde geändert. Jetzt sind die Modnamen/Verzeichnisnamen in der source.cfg definiert.
-Day of Defeat Source funktioniert jetzt (Verlinkung, Verzeichnisname)

0.9.9.1
+custom wad Dateien aus dem Mappool von hl1 Mods, die im Modverzeichnis sind, werden jetzt auch verlinkt

0.9.9
-Fehlerhafte Ausgabe beim Starten von HL1-Server behoben (es wurden alle HL1-Mods angezeigt)
+Dateien können im Mappool komprimiert werden oder in einem anderen Verzeichnis als der Original-Mappool
+Möglichkeit das Verzeichnis für die Komprimierten Maps zu ändern (mappool_bzip)
+Menü für start/stop/restart hinzugefügt (es weiterhin immer noch 'start/stop/restart servername' möglich)
+Kosmetische Änderungen bei start/stop/restart
+Kosmetische Änderungen beim Komprimieren vom Mappool
+Nach der Installation eines Servers startet die Konfiguration automatisch für den richtigen Server
+Option für Lan-Server hinzugefügt. So braucht man nicht per Hand '-nomaster -insecure +sv_lan 1' einzugeben

0.9.8
+mappool wird in einem extra Verzeichnis komprimiert (mappool_bzip)
+Dateien mit Leerzeichen werden jetzt auch berücksichtigt
0.9.7
-Schreibfehler im Script korrigiert
-Überprüfung beim Anlegen der Verzeichnisse "valve" und "server" hinzugügt[/tt]

[hr]

Beispiel der Installation (Linuxkenntnisse sind zwingend erforderlich, da mein Script bestimmt nicht Fehlerfrei ist):

Als User einloggen und das Archiv herunterladen
wget http://downloads.gbs-clan.de/valve/scripts/source/source_1.2.3_ascii.tar.bz2">http://downloads.gbs-clan.de/valve/scri ... ii.tar.bz2</a>

Entpacken
tar -xvf source_1.2.2_ascii.tar.bz2

Die Datei source.cfg bearbeiten.

Script starten
scripts/source.sh -i

Weitere Schritte folgen...

[hr]

Beispiel für ein Startscript, dass alle Gameserver startet.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/sh
# /etc/init.d/gameserver
#

# Server, die gestartet werden sollen. Getrennt mit einem Leerzeichen
server="server1 server2 warserver testserver"

# user, mit dem die Server gestartet werden
user="server"

# Pfad des scripts
script="/home/server/source.sh"

# Some things that run always
if [ $USER = root ]; then chown $user:users `tty`;fi

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    for start in $server; do echo "Starte Gameserver: $start"; su $user -c "$script start $start"; done
    ;;
  stop)
    for stop in $server; do echo "Stoppe Gameserver: $stop"; su $user -c "$script stop $stop"; done
    ;;
  *)
    echo "Usage: /etc/init.d/gameserver {start|stop}"
    exit 1
    ;;
esac

exit 0

DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

2

Sonntag, 8. Juni 2008, 16:32

Re: [Linux] Wartungs-Script (install/update/start/stop)

Unfertige neue Version: http://downloads.gbs-clan.de/valve/scripts/vdsis/vdsis_20080608.tar.gz">http://downloads.gbs-clan.de/valve/scri ... 608.tar.gz</a>

3

Montag, 9. Juni 2008, 14:58

Re: [Linux] Wartungs-Script (install/update/start/stop)

Ich will ja nicht drängeln! Aber ... bigri

Erstmal THX fürs bereit stellen! des "alten" zieh mir das auch würde mir ne menge Arbeit ersparen an bei 3 ROOTs die wir haben!

Eine Frage hätte ich:
könnte man da ein autorestartscript mit reinpacken? meine wo sich der server automatisch zu ner bestimmten uhrzeit selbst den restart giebt?

es ist nämlich volgendes:
im moment habe ich so ähnliche scripte auf den roots aber halt mehrere! eins für update eins für start.. und eines für autorestart...

das würde dann die sache komplettieren melo in einem script.
ich bin ja schon dankbar für dieses right

mfg
DU SUCHST CHEATS ODER HACKS? Dann klick &gt;&gt;Hier!&lt;&lt;

Wer deutlich spricht riskiert verstanden zu werden!!

DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

4

Dienstag, 10. Juni 2008, 01:22

Re: [Linux] Wartungs-Script (install/update/start/stop)

Das mit dem Restart ließe sich jetzt mit oder ohne mein Script schnell und einfach über einen Cronjob erledigen.

Einfach ein Script mit einer Restartfunktion zu einem bestimmten Zeitpunkt über einen Cronjob aufrufen.

5

Samstag, 14. Juni 2008, 10:20

Re: [Linux] Wartungs-Script (install/update/start/stop)

ja eigendlich meinte ich des anders :mrgreen:

ist aber net so wild habe gerade festgestellt das das eh pot wie deckel ist^^

darf ich mal höfflich nachfragen welche fortschritte die neuauflage deines scripts hat? schaem1

nicht das ich mit dem einen nicht zufrieden wäre....thx nochmal dafür right right right
... nur gefällts mir so sehr das ich den 2 teil kaum abwarten kann!

lg

ps: frage: ein banner eures forums haste net zufällig? habe auf eurer hp nachgesehn aber da nur banner der hp entdeckt.
würde es auf unseren forum verlinken! da dieses forum eigendlich sehr informativ ist! und wir auch da sowas bearbeiten!
DU SUCHST CHEATS ODER HACKS? Dann klick &gt;&gt;Hier!&lt;&lt;

Wer deutlich spricht riskiert verstanden zu werden!!

6

Donnerstag, 19. März 2009, 15:06

Re: [Linux] Wartungs-Script (install/update/start/stop)

hallöleeee,

saugeiles script.

danke

LG

barkeeper

7

Mittwoch, 25. März 2009, 12:31

Re: [Linux] Wartungs-Script (install/update/start/stop)

hallöleeee,

ich habe noch eine frage zu den maps.

ich benutze HL1, DoD und möchte jetzt neue maps installieren.

leider geht es nicht, die maps werden nicht geladen.

in welches verzeichniss müssen den die maps geladen werden.

ich habe einmal

/mappool
/server/dodserver/hl1/dod
/hlds ist das von mir angelegte verzeichniss (also über das script)

in allen verzeichnissen finde ich die ordnerstruktur für die maps
wobei in der /server/dodserver/hl1/dod nur verknüpfungen auf
den /mappool oder /hlds ist.

ich habe keine ahnung wohin ich das jetzt was kopieren muss.

danke

LG

barkeeper

DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

8

Mittwoch, 25. März 2009, 17:26

Re: [Linux] Wartungs-Script (install/update/start/stop)

Hehe, wundert mich echt, dass noch jemand das Script einsetzt.

Handelt es sich um DOD 1.3 für die HL1-Engine? Bei DOD:S, TF2, und L4D und anderen Mods, welche die neuen Engines nutzen, außer die HL1 und Source EP1/2007, funktioniert das Script nicht, da die Pfade abweichen (orangebox, l4d). Deswegen wollte ich das Script auch komplett neu schreiben, damit alle Mods und Engines unterstützt werden.

Die Maps kommen nach ~/mappool/hl1/dod/maps/
Da die Verzeichnisse auf allen Servern symbolisch verlinkt sind, sollten die Maps auch direkt auf allen Servern verfügbar sein.

hEiNz

Profi

Beiträge: 705

Wohnort: Deutschland

Beruf: Freischaffender Künstler

Rootserver vorhanden: Nein

  • Nachricht senden

9

Donnerstag, 23. April 2009, 16:33

Re: [Linux] Wartungs-Script (install/update/start/stop)

ich würde es auch gerne einsetzen aber du sagtest du willst es umschreiben

naja werds mal aufn homerechner testen big-lol

kanst aber schon sagen wann du in etwa eine neu version hast kiss4 Bitte bestteam

DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

10

Samstag, 9. Mai 2009, 21:33

Re: [Linux] Wartungs-Script (install/update/start/stop)

Ich hab mal ein bisschen mit dem Komprimieren der Dateien für den Fastdownload probiert.

Bisher ist das bei rausgekommen: http://downloads.gbs-clan.de/temp/compress_mappool.sh">http://downloads.gbs-clan.de/temp/compress_mappool.sh</a>

Voraussetzungen: bzip2, rsync (Bei Debian: apt-get install rsync bzip2)

Funktionen: Gleicht ein Zielverzeichnis mit dem Quellverzeichnis per rsync ab und komprimiert dann die Dateien.
Dabei werden im Zielverzeichnis die unkomprimierten Versionen nicht gelöscht. Rsync gleicht nur die veränderten Dateien ab, wenn es nochmals aufgerufen wird. Das Script sucht im Zielverzeichnis nach Statusänderungen und komprimiert ggf. geänderte Dateien neu. Beim ersten aufruf werden alle Dateien komprimiert.

Es wird im Quellverzeichnis die Datei .unmodified und .recompress angelegt.

Wurde .unmodified manuell gelöscht ->
  • rsync von Quellverzeichnis zum Zielverzeichnis
  • löscht die bz2-Dateien, von denen das Original nicht mehr vorhanden ist
  • komprimiert fehlende bz2-Dateien
  • .unmodified wird wieder angelegt

Wurde .recompress manuell gelöscht ->
  • rsync von Quellverzeichnis zum Zielverzeichnis
  • löscht die bz2-Dateien, von denen das Original nicht mehr vorhanden ist
  • komprimiert alle bz2-Dateien neu
  • .recompress wird wieder angelegt


Ziel ist es, einem Späteren Admin ohne Zugriffsrechte auf die Shell zu ermöglichen Maps hinzuzufügen, welche nach einem Neustart des Servers (_restart oder quit per HLSW) automatisch komprimiert werden. Das ganz lässt sich mit einem Wrapper-Script erledigen.

Ein anderes Beispiel mit dem Tool SourceRSC: http://www.gameserveradmin.de/counter-strike-source-f61/kernel-frage-und-fast-download-bzip2--t4851.html#p26460">http://www.gameserveradmin.de/counter-s ... tml#p26460</a>
Das Tool SourceRSC löst das ganze eleganter. Mit Shell-Scripts diese Funktionen so zu bewältigen ist nicht einfach. Man sieht auch am Code von meinem Script, dass ich einen Hack für Dateinamen mit Leerzeichen verwende. Der eigentliche Aufrufe ohne .recompress oder .unmodified zu löschen ist sehr schnell und verzögert den neustart des Servers nicht mehr.

Ich werde dort noch Code einbauen, dass das Script compress_mappool.sh nicht mehr als einmal aufgerufen werden kann. Mehrere gleichzeitige Restarts mehrer Server wären sonst fatal.

Wenn ich das dann abgeschlossen hab, baue ich noch die Möglichkeit ein, einen Abgleich der Dateien über FTP zu ermööglichen, falls der Fastdownload nicht auf dem gleichen Host ist.

Danach kann ich das in das eigentliche Script einbauen. Als nächstes werde ich dann den wrapper, welcher im Screen ausgeführt wird, mit im Code einbauen. Dieser wird dann automatisch nach der Installation eines Servers eingerichtet.
Bis dahin werde ich aber noch einige Tests mit dem Script machen müssen. Leider habe ich zur Zeit keinen Root mehr, auf dem Gameserver laufen um alles Live zu testen.