Ich habe einen Steam-basierten Spieleserver, Unturned für GNU-Linux. Ich muss ihn manuell aktualisieren, indem ich ein /home/steam/update.sh
Skript ausführe.
update.sh
lädt die neuste Version des Spieleservers herunter und der Dienst wird neu gestartet.
Was ich versucht habe
Ich habe einen Cronjob eingerichtet, der update.sh
jeden Tag um 21 Uhr ausgeführt wird (normalerweise werden die Updates zu dieser Zeit um 19, 20 oder 21 Uhr durchgeführt). Das ist jedoch keine gute Lösung, da die Updates manchmal um 21:15 Uhr durchgeführt werden und der Server dann einen Tag lang offline sein könnte.
0 21 * * * /home/steam/update.sh > /dev/null 2>&1
Was ich möchte
Ich habe herausgefunden, dass speziell für dieses Spiel nach jedem Update ein Änderungsprotokoll veröffentlicht wird und Steam einen RSS-Link bereitstellt.http://steamcommunity.com/games/304930/rss/
Gibt es eine Möglichkeit, mich jedes Mal auszuführen, update.sh
wenn der RSS-Feed aktualisiert wird?
Gibt es eine Möglichkeit zu überprüfen, ob der Server aktualisiert ist?
Vielen Dank im Voraus.
Antwort1
Nun, ich würde sagen, das gibt es. Wenn Sie einen Cron-Job haben, der etwa alle 30 Minuten läuft (oder öfter, wenn Sie so sehr auf eine schnelle Antwort angewiesen sind), der ein Skript ausführt, das nur nach neuen RSS-Einträgen sucht. Im Falle eines neuen Eintrags ruft es Ihr Update-Skript auf und wenn nicht, tut es nichts. Dies verlangsamt Ihr System kein bisschen – selbst wenn Sie den RSS-Feed jede Minute überprüfen. Sie müssen jedoch Ihr eigenes kleines Ding schreiben, um den Überblick über RSS-Einträge zu behalten, aber ich schätze, Sie müssen nur den Zeitstempel Ihres letzten bekannten RSS-Eintrags speichern.
Antwort2
Kurze Antwort: Nein.
lange Antwort :
Sie ziehen einen RSS-Feed, die Leute bei Steamcommunity können Ihnen kein „magisches Signal“ senden, das ein Update auslösen kann.
die Crontab-Lösung ist in Ordnung, geben Sie zur Sicherheit einfach 9pm16 ein,
update.sh
es muss mit einem nicht reagierenden Server zurechtkommen.