TeaHost
Counter-Strike 2cs2steamcmdобновление5 мин. чтения

Как обновить сервер CS2 через SteamCMD

Как обновить сервер CS2 через SteamCMD: остановка, app_update 730 validate, проверка версии в steam.inf, восстановление Metamod и плагинов после патча

Кратко

Сервер CS2 обновляют так: остановить, забэкапить game/csgo/cfg и addons, выполнить SteamCMD с +force_install_dir перед +app_update 730, затем вернуть строку Metamod в gameinfo.gi и обновить Metamod, CounterStrikeSharp и плагины. Проверка — meta list, css_plugins list и status; файлы сервера занимают около 30 ГБ, место проверьте заранее.

Valve выкатила патч — и сервер мгновенно превращается в тыкву: игроки видят «Your server is out of date», Metamod не грузится, плагины падают с исключениями. Обновить сервер CS2 нужно как можно быстрее, но порядок действий имеет значение: если просто нажать «обновить» и запустить, вы с высокой вероятностью получите рабочий дедик без единого плагина. Разберём весь цикл — от остановки до восстановления связки Metamod и CounterStrikeSharp.

Когда обязательно обновить сервер CS2

CS2 не пускает клиента на сервер с другой версией. Признаки, что пора:

  • В браузере серверов ваш сервер пропал или помечен устаревшим.
  • Игроки получают ошибку о несовпадении версии при подключении.
  • В консоли при старте — жалобы на несовпадение сборки.

Проверить текущую версию можно в файле:

код
game/csgo/steam.inf

Внутри строки PatchVersion и ClientVersion. Сравните с актуальной версией из патчноутов Valve — это надёжнее, чем гадать по симптомам.

Шаг 1: остановить сервер

Обновление на живом процессе — гарантированный способ получить битые файлы. Останавливайте сервер кнопкой Stop в панели или через systemd, если поднимали сами:

код
systemctl stop cs2

Дождитесь, пока процесс действительно завершится, а не просто «серый статус». В панели это видно по консоли — она должна показать корректное завершение.

Шаг 2: сделать бэкап конфигов

Полный бэкап образа обычно избыточен, но конфиги и плагины сохранить нужно всегда. Минимальный набор:

код
game/csgo/cfg/
game/csgo/addons/
game/csgo/gamemodes_server.txt
game/csgo/steam.inf

Скачайте их по SFTP или сделайте архив прямо в файловом менеджере панели. Проверка validate, о которой ниже, умеет удалять файлы, которых нет в манифесте Steam, — и addons попадает под удар первым.

Шаг 3: команда SteamCMD

App ID дедика CS2 — 730, тот же, что у самой игры. Команда целиком:

код
./steamcmd.sh +login anonymous +force_install_dir /home/cs2/cs2-server +app_update 730 validate +quit
Часть командыЧто делает
+login anonymousДедик CS2 качается анонимно, аккаунт Steam не нужен
+force_install_dirПуть до сервера. Указывайте до +app_update, иначе SteamCMD скачает всё в свою директорию по умолчанию, и вы будете долго искать около 30 гигабайт
+app_update 730Собственно обновление
validateСверка контрольных сумм всех файлов

validate заметно замедляет процесс (на HDD это десятки минут), поэтому в штатной ситуации его можно опустить. Обязательным он становится, если сервер падает после обновления или вы подозреваете повреждённые файлы.

На хостинге с панелью отдельный SteamCMD запускать не нужно: кнопка обновления или переустановки сервера делает то же самое. Разница в том, что панель обычно сохраняет пользовательские файлы, а validate вручную — нет.

Шаг 4: восстановить Metamod и плагины

Это тот шаг, который пропускают, а потом пишут в поддержку «после обновления пропали все плагины».

Что нужно проверить:

  1. Папка game/csgo/addons/ на месте. Если validate её вычистил — вернуть из бэкапа.
  2. В файле game/csgo/gameinfo.gi присутствует строка загрузки Metamod. Обновление игры перезаписывает gameinfo.gi почти всегда, и строку приходится дописывать заново. Точная формулировка — в статье про установку Metamod.
  3. Версии Metamod и CounterStrikeSharp соответствуют новой сборке игры. После крупного патча старые сборки просто не загрузятся — нужны свежие релизы.

Порядок восстановления: сначала Metamod, потом CounterStrikeSharp, затем плагины. CounterStrikeSharp обновляется простым копированием свежего релиза поверх старого — по официальной документации конфиги при этом не перезаписываются. Пытаться чинить плагин, когда не грузится фреймворк, — потерянный вечер.

Шаг 5: запуск и проверка

Стартуйте сервер и сразу смотрите консоль:

код
meta list
css_plugins list
status

meta list покажет загруженные модули, css_plugins list — плагины, status — версию и количество слотов. Если всё три команды отвечают осмысленно, обновление прошло.

Дополнительно проверьте, что сервер видно снаружи: GSLT-токен иногда слетает вместе с конфигом, и сервер тихо становится невидимым в браузере.

Автоматизация

Держать обновление вручную больно, если серверов несколько. Простой скрипт под cron:

bash
#!/bin/bash
systemctl stop cs2
/home/cs2/steamcmd/steamcmd.sh +login anonymous \
  +force_install_dir /home/cs2/cs2-server \
  +app_update 730 +quit
systemctl start cs2

Ставится в планировщик задач на ночное время. Важная оговорка: автообновление игры не обновляет Metamod и плагины. После крупного патча сервер поднимется, но без аддонов, поэтому скрипт хорош для мелких апдейтов, а мажорные всё равно требуют рук.

Параметр -autoupdate в строке запуска для CS2 полагаться не стоит — он работает нестабильно и на части сборок игнорируется.

Что чаще всего ломается

  • SteamCMD качает всё заново. Неверный force_install_dir или он указан после app_update.
  • Не хватает места. Дедик CS2 весит около 30 ГБ, и во время обновления временно нужно больше. Проверьте df -h до запуска.
  • Сервер стартует, но пустой в браузере. Слетел GSLT или параметры запуска — смотрите параметры запуска сервера.
  • Плагины падают с ошибкой типа. Несовместимая версия CounterStrikeSharp, ждите обновлённую сборку.
  • Права на файлы. Если запускали SteamCMD от root, а сервер работает от другого пользователя, процесс не сможет писать логи и демо.

Частые вопросы

Нужно ли обновлять сервер после каждого мелкого патча?

Если клиенты не пускает — да, выбора нет. Мелкие патчи без смены версии протокола иногда проходят мимо, но проверить проще, чем угадывать: зайдите на сервер сами.

Сохранятся ли карты из workshop?

Да, они лежат в отдельной директории и app_update 730 их не трогает. Обновление самих карт зависит от авторов — подробнее в статье про карты из workshop.

Что делать, если после обновления не работает MatchZy?

Ждать сборку плагина под новую версию CounterStrikeSharp. До этого момента матчевый сервер работать не будет — это нормальный цикл после каждого крупного патча, смотрите установку MatchZy.

Коротко

Остановить сервер, забэкапить cfg и addons, выполнить app_update 730 с правильным force_install_dir, вернуть строку Metamod в gameinfo.gi, обновить фреймворк и плагины, проверить meta list и css_plugins list. На это уходит минут двадцать, если не пропускать бэкап.

Если не хочется ставить SteamCMD самому — на хостинге с панелью сервер переустанавливается и перезапускается из браузера, тарифы CS2 тут.