HOME

SteamCmd(Konsolensteuerung für Steam-Spiele)

SteamCmd dient dazu Spiele oder auch Spiel-Server zu installieren/upzudaten.
Im Gegensatz zum gewohnten einfachen Weg über das GUI des Steam "Browsers" auf dem heimischen PC kann SteamCmd auch auf *dummen* Terminal-Servern ohne Grafikkarten eingesetzt werden.
Es kann wahlweise interaktiv bedient werden(ähnlich wie die Befehlseingabe in der Konsole) oder automatisiert über eine Art Skript-Datei.


Alle Beispiele beziehen sich auf "Seven Days to die";
Verzeichnisse, App-ID und beta-Zugang müssen für andere Spiele natürlich entsprechend angepasst werden!

Einen User für steamcmd auf dem(entfernten) Server erstellen


Hallo ihr Lutscher da draussen!
Fuckit!


Ein Spiel/Spielserver auf dem(enfernten) Server installieren


Ein Spiel/Spielserver aktuell halten

Wer einen Spiele-Server betreibt hat das Problem das Steam-Spiele fast wöchentlich Updates erhalten.
Bei jedem Start eines beliebigen Spieles prüft Steam ob es ein Update dafür gibt und wenn ja.. wird dieses Update zwangseingespielt.
Die Problematik(mal eben schnell.. Witcher III spielen) in schlecht angebundenen Gebieten bei Downloadgrößen im Gigabytebereich lasse ich mal aussen vor..

Die Clients werden also automatisch zwangsaktualisiert, die Server hingegen verbleiben bei der Version am Tage ihrer Installation.
Meist können aktualisierte Clients sich nicht mit veralteten Server verbinden: die Spieler sind genervt und wandern ab.

Manuelles Update

Selber auf den Server anwesend sein reicht nicht, da man so nichts von dem neuen Update mitbekommt.
Sollte es einem dann doch auffallen(wütende Anrufe/..) kann man steamcmd nutzen und tippt dazu zeilenweise ein:

./steamcmd.sh login anonymous force_install_dir /home/7d2d-srv/7d2d app_update 294420 -beta latest_experimental validate quit

Wobei ./steamcmd.sh der Name des Scripts für steamcmd ist,
login anonymous (hier NICHT vertippen, kein anonymus oder sonstwas!) bei Servern passt anonymous als Username,
force_install_dir ~/7d2d (der LINUX ZIEL-Pfad zum Serververzeichnis),
app_update 294420 -beta latest_experimental validate (die Aufforderung die AppID 294420 in der experimentellen beta-Version zu überprüfen/upzudaten),
quit (beendet steamcmd wieder)

Semimanuelles Update

Der FOLGENDE TEXT IST QUATSCH!
Es sind nur Denkanstösse, die noch ÜBERARBEITET werden müssen!
DAS FUNKTIONIERT SO NICHT!!

Den Server automatisiert alle vier Stunden herunterfahren, validieren und neustarten lassen. Im dümmsten Fall wäre der dann 3h59m veraltet und nicht erreichbar.
Man erstellt die leere Skript-Datei 7d2dupdate.sh und füllt die mit dem folgenden Text:

#!/bin/bash login anonymous force_install_dir /home/7d2d-srv/7d2d/ app_update 294420 -beta latest_experimental validate quit

Nun ruft man via crontab -e den Dienst Chrontab auf, der zeitgesteuert Aufgaben erledigt und fügt Folgendes ein:
0 0 * * * 7d2dupdate.sh
0 4 * * * 7d2dupdate.sh
0 8 * * * 7d2dupdate.sh
0 12 * * * 7d2dupdate.sh
0 16 * * * 7d2dupdate.sh


Das funktioniert so NICHT, da die Pfade nicht zur Skriptdatei angegeben werden, die Skriptdatei höchstwahrscheinlich nicht ausfürbar ist und vor allem.. der Server immer noch läuft!!
Das Skript den Server erst sauber herunterfahren und danach die Befehle an steamcmd überge.
Erst dann *würde* das Skript funktionieren(siehe vorhergehende Anmerkungen!!)

Vollautomatisches Update(nur bei Bedarf)

Alle 15 Minuten automatisiert prüfen ob ein Update erforderlich ist und das fallweise durchführen lassen.


Diese Seite wurde zuletzt am 23.07.2020 um 21:44 geändert.

(c) 2024 DHLF ☮🇺🇦