Запускать скрипт каждый раз, когда я получаю новый элемент RSS

Запускать скрипт каждый раз, когда я получаю новый элемент RSS

У меня есть игровой сервер на базе Steam, Unturned для GNU-Linux. Мне приходится обновлять его вручную, запуская скрипт /home/steam/update.sh.

update.shзагружает последнюю версию игрового сервера и перезапускает сервис.


Что я пробовал
Я сделал cronjob для запуска update.shкаждый день в 9 вечера (обычно они обновляются в 7, 8 или 9 вечера в это время). Но это не очень хорошее решение, потому что в какой-то момент они будут обновляться в 9:15, и сервер может быть отключен в течение дня.

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

Что я хочу
Я выяснил, что в этой игре после каждого обновления публикуется список изменений, а Steam предоставляет ссылку на RSS.http://steamcommunity.com/games/304930/rss/

Есть ли способ запускать его update.shкаждый раз, когда обновляется RSS?
Есть ли способ проверить, обновлен ли сервер?

Заранее спасибо.

решение1

Ну, я бы сказал, что есть. Если у вас есть задание cron, запущенное каждые, скажем, 30 минут (или чаще, если вы так привязаны к быстрому ответу), которое запускает скрипт, который проверяет только наличие новых записей RSS. В случае новой записи он вызывает ваш скрипт обновления, а если нет — ничего не делает. Это ни на йоту не замедлит вашу систему — даже если вы будете проверять RSS-канал каждую минуту. Однако вам придется написать свою собственную маленькую штуку, чтобы отслеживать записи RSS, но я полагаю, вам нужно будет хранить только временную метку вашей последней известной записи RSS.

решение2

Короткий ответ: Нет.

длинный ответ:

  • Вы загружаете RSS-канал, и люди в SteamCommunity не могут отправить вам «волшебный сигнал», который может запустить обновление.

  • Решение crontab прекрасно, просто установите его на 9 вечера 16, чтобы быть уверенным, update.shоно должно быть способно справиться с неотвечающим сервером.

Связанный контент