Jedes Mal ein Skript ausführen, wenn ich ein neues RSS-Element erhalte

Jedes Mal ein Skript ausführen, wenn ich ein neues RSS-Element erhalte

Ich habe einen Steam-basierten Spieleserver, Unturned für GNU-Linux. Ich muss ihn manuell aktualisieren, indem ich ein /home/steam/update.shSkript ausführe.

update.shlädt die neuste Version des Spieleservers herunter und der Dienst wird neu gestartet.


Was ich versucht habe
Ich habe einen Cronjob eingerichtet, der update.shjeden 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.shwenn 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.shes muss mit einem nicht reagierenden Server zurechtkommen.

verwandte Informationen