Rust Spielerzahl mit Bash Befehl auslesen?
Ich würde gerne mit einem .sh Script die Spielerzahl eines Rust Server auslesen, um damit via if bei weniger als 20 Spielern den Server wipen lassen. Geht das? Wie?
1 Antwort
Hallo
Rust Spielerzahl mit Bash Befehl auslesen?
Wenn die Daten die Du möchtest auch als ASCII-Text protokolliert werden sollte das kein Problem sein.
Ich würde gerne mit einem .sh Script die Spielerzahl eines Rust Server
auslesen,
cat rust_logdatei.log
sollte das Logfile, so es eines gibt und so heißt, lesen.
um damit via if bei weniger als 20 Spielern den Server wipen
lassen.
ANZAHL=$(cat rust_logdatei.log | grep SPIELERANZAHL)
# oder
ANZAHL=$(cat rust_logdatei.log | grep "logged in")
Natürlich auch ohne useless use of cat ;-)
ANZAHL=$(grep SPIELERANZAHL rust_logdatei.log)
Hängt davon ab wie Du die Spieler "als aktiv" ermittelst, was im Logfile steht und wie die Datei wirklich heißt.
Geht das? Wie?
if [ $SPIELERANZAHL -lt 20 ];
then
wipe-Kommando
fi
Wenn Du mal ein (einen Teil des) Logfiles bereit stellst kann man da sicher was programmieren das Deinen Wunsch erfüllt. So bleibt es halt ein lediglich Gerüst um darauf aufbauen zu können.
Linuxhase
im log steht nur xxx joined und xxx left
Das ist doch ausreichend; es ist ja keiner mit dem Server verbunden wenn er nicht auch joined ist ;-)
#!/bin/bash
# meinscript.sh
ANZAHL=$(grep joined rust_logdatei.log)
if [ $ANZAHL -lt 20 ] ;
then
wipe-Kommando
fi
Das dann einmal starten, etwa so:
while true meinscript.sh; do ...
Allerdings würde mich interresieren wie man die Spielerzahl mittels SteamAPI / Steamcmd bekommen kann...
Dann stelle eine andere Frage, denn hier wolltest Du es in Bash!
Linuxhase
Das Problem ist das dann aber auch spieler mitgezählt werden, die schon wieder weg sind. Mir wäre letztere Option, die ich genannt hatte, lieber.
Das Problem ist das dann aber auch spieler mitgezählt werden, die schon wieder weg sind
Dann kannst Du eine Anweisung angeben welche die joinded mit den left Zeilen abgleicht, etwa so:
let i=$ANZAHL-$LEFT
Dann kann das ganze so aussehen:
#!/bin/bash
# meinscript.sh
ANZAHL=$(grep joined rust_logdatei.log)
LEFT=$(grep left rust_logdatei.log)
let i=$ANZAHL-$LEFT
if [ $i -lt 20 ] ;
then
wipe-Kommando
fi
Linuxhase
im log steht nur xxx joined und xxx left . die spieleranzahl wird via RCON herausgegeben. Allerdings würde mich interresieren wie man die Spielerzahl mittels SteamAPI / Steamcmd bekommen kann...