Execute um script sempre que receber um novo item RSS

Execute um script sempre que receber um novo item RSS

Eu tenho um servidor de jogos baseado no Steam, Unturned para GNU-Linux. Tenho que atualizá-lo manualmente executando um /home/steam/update.shscript.

update.shbaixa a versão mais recente do servidor de jogo e o serviço é reiniciado.


O que eu tentei
Fiz um cronjob para rodar update.shtodos os dias às 21h (eles costumam atualizar às 19h, 8h ou 21h nesse horário). Mas não é uma boa solução porque algum dia eles atualizariam às 9h15 e o servidor poderia ficar offline por um dia.

0  21 * * * /home/steam/update.sh > /dev/null 2>&1

O que eu quero
Eu descobri que especialmente para este jogo, após cada atualização eles postam um changelog e o Steam fornece um link RSS.http://steamcommunity.com/games/304930/rss/

Existe alguma maneira de executar o meu update.shsempre que atualizarem o RSS?
Existe alguma maneira de verificar se o servidor está atualizado?

Agradeço antecipadamente.

Responder1

Bem, eu diria que existe. Se você tiver um cron job em execução a cada 30 minutos (ou com mais frequência, se estiver viciado em uma resposta rápida), execute um script que verifica apenas novas entradas RSS. No caso de uma nova entrada, ele chama seu script de atualização e, caso contrário, não faz nada. Isso não deixará seu sistema nem um pouco lento - mesmo se você verificar o feed RSS a cada minuto. No entanto, você terá que escrever sua própria coisa para acompanhar as entradas RSS, mas acho que você só precisa armazenar o carimbo de data e hora da sua última entrada RSS conhecida.

Responder2

resposta curta: Não.

resposta longa :

  • você está puxando um feed rss, as pessoas da steamcommunity não podem enviar um "sinal mágico" que possa acionar uma atualização.

  • a solução crontab está boa, basta colocar 21h16 para ter certeza, update.shdeve ser capaz de lidar com um servidor que não responde.

informação relacionada