У меня есть игровой сервер на базе 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
оно должно быть способно справиться с неотвечающим сервером.