Ru/SteamCMD: Difference between revisions
(Перевел все из английской версии статьи) |
m (Nesciuse moved page SteamCMD:ru to Ru/SteamCMD over redirect: -Language prefixes) |
||
(15 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{lang|SteamCMD|title=SteamCMD}} | ||
| | '''Консольный клиент Steam''' или '''SteamCMD''' - новая утилита для установки и обновления выделенных серверов через интерфейс командной строки. <br> | ||
| | Он работает только с играми, которые переведены на контентную систему [[SteamPipe]]. Постепенно все серверы, использующие [[HLDSUpdateTool]], перейдут на неё. | ||
}} | |||
'''Консольный клиент Steam''' или '''SteamCMD''' - новая утилита для установки и обновления выделенных серверов через интерфейс командной строки. Он работает только с играми, которые переведены на контентную систему [[SteamPipe]]. Постепенно все серверы, использующие [[HLDSUpdateTool]], перейдут на | |||
== Загрузка SteamCMD== | == Загрузка SteamCMD== | ||
=== Windows === | === Windows === | ||
1. Создайте папку для SteamCMD. | 1. Создайте папку для SteamCMD. | ||
Line 17: | Line 10: | ||
C:\SteamCMD | C:\SteamCMD | ||
2. Загрузите SteamCMD для Windows: | 2. Загрузите SteamCMD для Windows: https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip | ||
3. Извлеките содержимое zip-архива в созданную папку. | 3. Извлеките содержимое zip-архива в созданную папку. | ||
=== Linux === | === Linux === | ||
1. Сначала установите зависимости необходимые для запуска SteamCMD. | 1. Сначала установите зависимости необходимые для запуска SteamCMD. | ||
Line 38: | Line 30: | ||
2. Рекомендуется создать отдельного пользователя для SteamCMD. В любом случае не запускайте из под ''root'' пользователя, это может быть не безопасно. | 2. Рекомендуется создать отдельного пользователя для SteamCMD. В любом случае не запускайте из под ''root'' пользователя, это может быть не безопасно. | ||
Выполните | Выполните следующие команды с root-правами чтобы создать пользователя ''steam'' и войти под ним: | ||
useradd -m steam | useradd -m steam | ||
Line 52: | Line 44: | ||
3. Загрузите SteamCMD для Linux. | 3. Загрузите SteamCMD для Linux. | ||
wget | wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | ||
4. Извлеките содержимое в директорию. | 4. Извлеките содержимое в директорию. | ||
Line 59: | Line 51: | ||
=== OS X === | === OS X === | ||
1. Откройте Terminal.app и создайте директорию для SteamCMD. | 1. Откройте Terminal.app и создайте директорию для SteamCMD. | ||
Line 67: | Line 58: | ||
2. Загрузите SteamCMD для OS X. | 2. Загрузите SteamCMD для OS X. | ||
curl -O | curl -O https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz | ||
3. Извлеките содержимое в директорию. | 3. Извлеките содержимое в директорию. | ||
Line 74: | Line 65: | ||
== Запуск SteamCMD == | == Запуск SteamCMD == | ||
''При первом запуске SteamCMD автоматически обновится и отобразит приглашение <code>Steam></code>. Наберите <code>help</code> для более подробной информации.'' | ''При первом запуске SteamCMD автоматически обновится и отобразит приглашение <code>Steam></code>. Наберите <code>help</code> для более подробной информации.'' | ||
Line 90: | Line 80: | ||
== Вход в SteamCMD == | == Вход в SteamCMD == | ||
=== Анонимно === | === Анонимно === | ||
Некоторые сервера можно загрузить анонимно. | Некоторые сервера можно загрузить анонимно. | ||
Line 98: | Line 86: | ||
=== С аккаунтом Steam === | === С аккаунтом Steam === | ||
Однако большинство сервером требуют входа в аккаунт Steam. | Однако большинство сервером требуют входа в аккаунт Steam. | ||
{{ | {{note|По соображениям безопасности рекомендуется создать новый аккаунт Steam предназначенный для загрузки и обновления ваших серверов.}} | ||
{{ | {{note|Вам нужно выйти из обычного клиента Steam чтобы корректно войти в SteamCMD.}} | ||
login <username> | login <username> | ||
Line 114: | Line 101: | ||
1. Запустите SteamCMD и войдите. | 1. Запустите SteamCMD и войдите. | ||
2. Установите директорию установки приложения. | 2. Установите директорию установки приложения. | ||
{{ | {{note|Используйте косую черту для Linux/OS X и обратную косую черту для Windows.}} | ||
force_install_dir <path> | force_install_dir <path> | ||
Например директорию с именем <code>cs_go</code> внутри текущей директории: | Например директорию с именем <code>cs_go</code> внутри текущей директории: | ||
т.е. директория с именем <code>cs_go</code> Внутри данной директории: | |||
force_install_dir ./cs_go/ | force_install_dir ./cs_go/ | ||
Line 128: | Line 116: | ||
app_update <app_id> [-beta <betaname>] [-betapassword <password>] [validate] | app_update <app_id> [-beta <betaname>] [-betapassword <password>] [validate] | ||
HLDS это особый случай: App ID всегда 90 и мод должен быть выбран первым. Это делается | HLDS это особый случай: App ID всегда 90 и мод должен быть выбран первым. Это делается путём установки параметра конфигурации приложения <code>mod</code> к запрашиваемому значению. | ||
app_set_config <app_id> <option_name> <option_value> | app_set_config <app_id> <option_name> <option_value> | ||
: Пример: Установить и проверить выделенный сервер Counter Strike: | : Пример: Установить и проверить выделенный сервер Counter-Strike: Global Offensive: | ||
app_update 740 validate | app_update 740 validate | ||
: Пример: Установить и проверить HLDS с Team Fortress Classic: | : Пример: Установить и проверить HLDS с Team Fortress Classic: | ||
app_set_config 90 mod tfc | app_set_config 90 mod tfc | ||
app_update 90 validate | app_update 90 validate | ||
{{bug | {{bug|HLDS (APPID 90) в настоящее время требуется несколько прогонов <code>app_update</code>, прежде чем все необходимые файлы будут успешно установлены. Просто запустите <code>app_update 90 validate</code> несколько раз, пока приложение не будет больше обновляться.}} | ||
: Пример: Установка и проверка бета-версии HLDS (Half-Life): | : Пример: Установка и проверка бета-версии HLDS (Half-Life): | ||
app_update 90 -beta beta validate | app_update 90 -beta beta validate | ||
: Пример: Установка и проверка бета-версии выделенного сервера Counter Strike: Source: | : Пример: Установка и проверка бета-версии выделенного сервера Counter-Strike: Source: | ||
app_update 232330 -beta prerelease validate | app_update 232330 -beta prerelease validate | ||
: Пример: Установка и проверка закрытой бета-версии выделенного сервера Natural Selection 2 (название <code>alpha</code>, пароль <code>natsel</code>): | : Пример: Установка и проверка закрытой бета-версии выделенного сервера Natural Selection 2 (название <code>alpha</code>, пароль <code>natsel</code>): | ||
Line 147: | Line 135: | ||
app_update 4940 -beta alpha -betapassword natsel validate | app_update 4940 -beta alpha -betapassword natsel validate | ||
3. После | 3. После завершения, введите <code>quit</code> чтобы правильно завершить сессию с серверами Steam. | ||
quit | quit | ||
Line 155: | Line 143: | ||
Команда для проверки целостности всех файлов. Это полезно если они повреждены или отсутствуют. | Команда для проверки целостности всех файлов. Это полезно если они повреждены или отсутствуют. | ||
{{ | {{note|Проверка перезапишет любые файлы, которые были изменены. Это может вызвать проблемы с индивидуальными серверами. Например, если настроить <code>mapcycle.txt</code>, этот файл будет перезаписан версией по умолчанию. Любые файлы, которые не являются частью установки по умолчанию не будут затронуты.}} | ||
Рекомендуется использовать эту команду только при начальной | Рекомендуется использовать эту команду только при начальной установке или если файлы сервера были изменены. | ||
=== Поддерживаемые сервера === | === Поддерживаемые сервера === | ||
[[Dedicated Servers List|Список выделенных серверов]] содержит известные сервера, которые использует SteamCMD. | |||
{{note|Любые дополнительные перечисленные команды должны быть выполнены до выполнения команды <code>app_update</code>.}} | |||
{{ | |||
== Автоматизация SteamCMD == | == Автоматизация SteamCMD == | ||
Есть два способа для автоматизации SteamCMD. | Есть два способа для автоматизации SteamCMD. | ||
{{ | {{note|Замените <code>steamcmd</code> на <code>./steamcmd.sh</code> для Linux/OS X.}} | ||
=== Командная строка === | === Командная строка === | ||
{{note|При использовании параметра <code>-beta</code> в командной строке, он должен быть заключён в кавычки, например, <code>+app_update "90 -beta beta"</code>.}} | |||
{{ | {{note|Если это не работает, попробуйте ввести его как <code>"+app_update 90 -beta beta"</code>.}} | ||
{{ | |||
Вводить команды в командной строке необходимо с символом плюс в качестве префикса, например: | Вводить команды в командной строке необходимо с символом плюс в качестве префикса, например: | ||
steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 +quit | steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 +quit | ||
Чтобы установить | Чтобы установить определённый мод для HL1, таких как Counter-Strike: Condition Zero: | ||
steamcmd +login anonymous +force_install_dir ../czero +app_set_config 90 mod czero +app_update 90 +quit | steamcmd +login anonymous +force_install_dir ../czero +app_set_config 90 mod czero +app_update 90 +quit | ||
Line 187: | Line 173: | ||
Пример: | Пример: | ||
<syntaxhighlight> | <syntaxhighlight> | ||
// update_csgo_ds.txt | // update_csgo_ds.txt | ||
// | // | ||
@ShutdownOnFailedCommand 1 // | @ShutdownOnFailedCommand 1 //поставьте 0 при одновременном обновлении нескольких серверов | ||
@NoPromptForPassword 1 | @NoPromptForPassword 1 | ||
login <username> <password> | login <username> <password> | ||
Line 208: | Line 193: | ||
== Кросс-платформенная установка == | == Кросс-платформенная установка == | ||
Можно выбрать платформу для которой необходимо скачать файлы, даже если это не та платформа на которой вы сейчас работаете. Это делается с помощью переменной <code>@sSteamCmdForcePlatformType</code>. (Да, это два "s" в начале имени переменной.) Например, чтобы загрузить выделенный сервер для Windows CSGO на Linux, вы можете запустить следующую команду: | |||
Можно выбрать платформу | |||
./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit | ./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit | ||
Line 229: | Line 212: | ||
== Windows ПО/Сценарии == | == Windows ПО/Сценарии == | ||
=== SteamCMD AutoUpdater === | === SteamCMD AutoUpdater === | ||
Установка и автоматическое обновление любого игрового сервера | Установка и автоматическое обновление любого игрового сервера | ||
GitHub: | GitHub: | ||
Line 238: | Line 219: | ||
=== condenser === | === condenser === | ||
[https://github.com/ShamelessCookie/condenser condenser] это загрузчик для установки, настройки, и запуска выделенных игровых серверов Steam. | [https://github.com/ShamelessCookie/condenser condenser] это загрузчик для установки, настройки, и запуска выделенных игровых серверов Steam. | ||
Line 252: | Line 232: | ||
== Linux Сценарии == | == Linux Сценарии == | ||
=== Linux Game Server Managers === | === Linux Game Server Managers === | ||
[[ | [[File:Lgsm.png|right|thumb|170px|Linux Game Server Manager]] | ||
Linux Game Server Managers приложение командной строки для быстрого, простого | Linux Game Server Managers приложение командной строки для быстрого, простого развёртывания и управления различных специализированных игровых серверов использующих SteamCMD. | ||
'''Возможности''' | '''Возможности''' | ||
Line 266: | Line 246: | ||
*ARMA 3 | *ARMA 3 | ||
*Blade Symphony | *Blade Symphony | ||
*Counter Strike | *Counter-Strike | ||
*Counter Strike: Condition Zero | *Counter-Strike: Condition Zero | ||
*Counter Strike: Global Offensive | *Counter-Strike: Global Offensive | ||
*Counter Strike: Source | *Counter-Strike: Source | ||
*Day of Defeat | *Day of Defeat | ||
*Day of Defeat: Source | *Day of Defeat: Source | ||
Line 295: | Line 275: | ||
=== SteamCMD Guardian 1.2 === | === SteamCMD Guardian 1.2 === | ||
Следующий сценарий был протестирован на Debian Wheezy. | Следующий сценарий был протестирован на Debian Wheezy. | ||
Посмотреть и загрузить можно здесь: | |||
http://pastebin.com/hcpMpmaZ | http://pastebin.com/hcpMpmaZ | ||
Line 315: | Line 294: | ||
#: <code>./updateserver.sh</code> | #: <code>./updateserver.sh</code> | ||
Файл автоматически | Файл автоматически загрузит SteamCMD, обновит и установит все выбранные игры (до 4). Запустите файл повторно для обновления игр. | ||
== Известные проблемы == | == Известные проблемы == | ||
=== Failed to install app 'xxxxxx' (No subscription) === | === Failed to install app 'xxxxxx' (No subscription) === | ||
Если вы получаете ошибку 'No subscription', то необходимо войти под Steam аккаунтом в котором эта игра приобретена. См. [[Dedicated Servers List|Список выделенных серверов]]. | |||
{{note|По соображениям безопасности рекомендуется создать новый аккаунт Steam только для ваших серверов.}} | |||
{{ | |||
Для примера | Для примера | ||
Line 331: | Line 308: | ||
=== 32-битные библиотеки на 64-битных дистрибутивах Linux === | === 32-битные библиотеки на 64-битных дистрибутивах Linux === | ||
Так как SteamCMD это 32-битная программа, для запуска требуются некоторые 32-битные библиотеки, даже если у вас уже установлены 64-битные версии. | Так как SteamCMD это 32-битная программа, для запуска требуются некоторые 32-битные библиотеки, даже если у вас уже установлены 64-битные версии. | ||
Line 344: | Line 320: | ||
sudo apt-get install lib32stdc++6 | sudo apt-get install lib32stdc++6 | ||
{{ | {{note|<code>ia32-libs</code> не требуется для установки SteamCMD; <code>lib32gcc1</code> будет достаточно.}} | ||
На '''Debian 7 "Wheezy"''' вы можете столкнуться с такой ошибкой: | На '''Debian 7 "Wheezy"''' вы можете столкнуться с такой ошибкой: | ||
Line 368: | Line 344: | ||
=== Login Failure: No Connection === | === Login Failure: No Connection === | ||
На Linux вы можете получить ошибку "Login Failure: No Connection". Она связана с отсутствующими правилами iptables. Необходимо их прописать например вот так: | На Linux вы можете получить ошибку "Login Failure: No Connection". Она связана с отсутствующими правилами iptables. Необходимо их прописать например вот так: | ||
<syntaxhighlight> | <syntaxhighlight> | ||
Line 376: | Line 351: | ||
Список портов может быть найден здесь: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=russian | Список портов может быть найден здесь: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=russian | ||
На серверах Windows вы можете столкнуться с ошибкой "SteamUpdater: Error: Download failed: http error 0" и "SteamUpdater: Error: Steam needs to be online to update. | На серверах Windows вы можете столкнуться с ошибкой "SteamUpdater: Error: Download failed: http error 0" и "SteamUpdater: Error: Steam needs to be online to update. Please confirm your network connection and try again.". Это как правило решается установкой опции "Автоматическое определение параметров" в IE (Internet Explorer) через настройки локальной сети в меню Свойства браузера. | ||
# Откройте Internet Explorer (IE). | # Откройте Internet Explorer (IE). | ||
# Нажмите на ''Инструменты'' | # Нажмите на ''Инструменты'' → ''Свойства браузера'' | ||
# Нажмите на вкладку ''Подключения'' | # Нажмите на вкладку ''Подключения'' | ||
# В нижней части вы должны увидеть ''Настройки параметров локальной сети'' | # В нижней части вы должны увидеть ''Настройки параметров локальной сети'' | ||
Line 400: | Line 374: | ||
Некоторые пользователи могут получить ошибку <code>ULIMIT</code> (no permission/cannot open file) во время запуска сценария. Эта ошибка вызвана маленьким значением параметра <code>-n</code> (число файловых дескрипторов) <code>ULIMIT</code>. SteamCMD использует стандартные команды внутри сценария оболочки инициализации, чтобы изменить <code>ULIMIT</code> автоматически, но некоторые серверы могут запретить повышение значения <code>ULIMIT</code> после запуска (или за пределы лимита, установленного <code>root</code>). | Некоторые пользователи могут получить ошибку <code>ULIMIT</code> (no permission/cannot open file) во время запуска сценария. Эта ошибка вызвана маленьким значением параметра <code>-n</code> (число файловых дескрипторов) <code>ULIMIT</code>. SteamCMD использует стандартные команды внутри сценария оболочки инициализации, чтобы изменить <code>ULIMIT</code> автоматически, но некоторые серверы могут запретить повышение значения <code>ULIMIT</code> после запуска (или за пределы лимита, установленного <code>root</code>). | ||
Это может быть исправлено | Это может быть исправлено путём изменения ограничения на максимальное число открытых файлов ulimit: | ||
ulimit -n 2048 | ulimit -n 2048 | ||
Если появляется ошибка (''no permission''), вам | Если появляется ошибка (''no permission''), вам придётся войти под root чтобы изменить параметр. Чтобы проверить текущую настройку введите '''ulimit -a'''. Система выдаст много строк, но вам нужно будет найти только одну: | ||
open files (-n) 1024 | open files (-n) 1024 | ||
В этом случае ''1024'' является текущим значением. | В этом случае ''1024'' является текущим значением. | ||
Line 413: | Line 387: | ||
=== Загрузка HLDS === | === Загрузка HLDS === | ||
При попытке скачать мод HL1, таких как TFC, сначала загружаются файлы HLDS, но не мод. Это происходит как с обычной версией так и с бета-версией. Вам, возможно, придётся пробовать скачать несколько раз, пока все необходимые файлы не будут загружены, но как только это будет сделано, файлы должны будут правильно обновиться в следующий раз. | |||
Обход этой проблемы здесь: http://danielgibbs.co.uk/2013/11/hlds-steamcmd-workaround-appid-90/ | |||
Просто удалив файлы appmanifest, без загрузки замены из сторонних источников, может сработать. Вы получите в начале сообщение об ошибке из-за | Просто удалив файлы appmanifest, без загрузки замены из сторонних источников, это может сработать. Вы получите в начале сообщение об ошибке из-за удалённых файлов, но загрузка должна продолжится. | ||
{{ | {{note|По некоторым причинам CS всегда устанавливается также.}} | ||
== | == См. также == | ||
* [[Source Dedicated Server]] | * [[Source Dedicated Server]] | ||
* [[Half-Life Dedicated Server]] | * [[Half-Life Dedicated Server]] | ||
* [[Dedicated Servers List]] | * [[Dedicated Servers List]] | ||
[[Category:Steam]] | [[Category:Steam:ru]] | ||
[[Category:Steam Applications]] | [[Category:Steam Applications:ru]] | ||
[[Category:Dedicated Server]] | [[Category:Dedicated Server:ru]] | ||
[[Category:Russian]] |
Latest revision as of 19:38, 10 July 2024
Консольный клиент Steam или SteamCMD - новая утилита для установки и обновления выделенных серверов через интерфейс командной строки.
Он работает только с играми, которые переведены на контентную систему SteamPipe. Постепенно все серверы, использующие HLDSUpdateTool, перейдут на неё.
Загрузка SteamCMD
Windows
1. Создайте папку для SteamCMD.
Для примера
C:\SteamCMD
2. Загрузите SteamCMD для Windows: https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
3. Извлеките содержимое zip-архива в созданную папку.
Linux
1. Сначала установите зависимости необходимые для запуска SteamCMD.
Ubuntu/Debian 64-бит
sudo apt-get install lib32gcc1
RedHat/CentOS
yum install glibc libstdc++
RedHat/CentOS 64-бит
yum install glibc.i686 libstdc++.i686
2. Рекомендуется создать отдельного пользователя для SteamCMD. В любом случае не запускайте из под root пользователя, это может быть не безопасно. Выполните следующие команды с root-правами чтобы создать пользователя steam и войти под ним:
useradd -m steam su - steam
(Если вы предпочитаете использовать sudo
, просто запустите предыдущую команду с префиксом sudo
.)
3. Создайте директорию для SteamCMD и перейдите в неё.
mkdir ~/steamcmd cd ~/steamcmd
3. Загрузите SteamCMD для Linux.
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
4. Извлеките содержимое в директорию.
tar -xvzf steamcmd_linux.tar.gz
OS X
1. Откройте Terminal.app и создайте директорию для SteamCMD.
mkdir ~/steamcmd cd ~/steamcmd
2. Загрузите SteamCMD для OS X.
curl -O https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz
3. Извлеките содержимое в директорию.
tar -xvzf steamcmd_osx.tar.gz
Запуск SteamCMD
При первом запуске SteamCMD автоматически обновится и отобразит приглашение Steam>
. Наберите help
для более подробной информации.
Windows
Откройте Командную строку и запустите SteamCMD.
cd C:\SteamCMD steamcmd
Linux/OS X
Откройте терминал и запустите SteamCMD.
cd ~/steamcmd ./steamcmd.sh
Вход в SteamCMD
Анонимно
Некоторые сервера можно загрузить анонимно.
login anonymous
С аккаунтом Steam
Однако большинство сервером требуют входа в аккаунт Steam.


login <username>
Затем введите пароль.
Если Steam Guard активирован, то проверьте вашу электронную почту чтобы узнать код доступа Steam Guard и ввести его. Это требуется сделать только при первом входе (а также при удалении файлов где SteamCMD хранит регистрационную информацию).
Вы должны увидеть сообщение о том, что вы успешно вошли в свой аккаунт.
Загрузка приложения
1. Запустите SteamCMD и войдите.
2. Установите директорию установки приложения.

force_install_dir <path>
Например директорию с именем cs_go
внутри текущей директории:
т.е. директория с именем cs_go
Внутри данной директории:
force_install_dir ./cs_go/
3. Установить или обновить приложение можно с помощью команды app_update
. Для проверки целостности приложения добавьте команду validate
. Для загрузки beta версий, используйте опцию -beta <betaname>
. Для примера HLDS beta версия называется beta
, а beta версия SrcDS называется prerelease
. Некоторые beta версии защищены паролем, чтобы иметь возможность скачивать их необходимо добавить опцию -betapassword <password>
.
app_update <app_id> [-beta <betaname>] [-betapassword <password>] [validate]
HLDS это особый случай: App ID всегда 90 и мод должен быть выбран первым. Это делается путём установки параметра конфигурации приложения mod
к запрашиваемому значению.
app_set_config <app_id> <option_name> <option_value>
- Пример: Установить и проверить выделенный сервер Counter-Strike: Global Offensive:
app_update 740 validate
- Пример: Установить и проверить HLDS с Team Fortress Classic:
app_set_config 90 mod tfc app_update 90 validate

app_update
, прежде чем все необходимые файлы будут успешно установлены. Просто запустите app_update 90 validate
несколько раз, пока приложение не будет больше обновляться. [нужно проверить в ?]- Пример: Установка и проверка бета-версии HLDS (Half-Life):
app_update 90 -beta beta validate
- Пример: Установка и проверка бета-версии выделенного сервера Counter-Strike: Source:
app_update 232330 -beta prerelease validate
- Пример: Установка и проверка закрытой бета-версии выделенного сервера Natural Selection 2 (название
alpha
, парольnatsel
): - [beta name] это название приватной бета-версии
- [beta code] это пароль приватной бета-версии
app_update 4940 -beta alpha -betapassword natsel validate
3. После завершения, введите quit
чтобы правильно завершить сессию с серверами Steam.
quit
Проверка целостности
validate
Команда для проверки целостности всех файлов. Это полезно если они повреждены или отсутствуют.

mapcycle.txt
, этот файл будет перезаписан версией по умолчанию. Любые файлы, которые не являются частью установки по умолчанию не будут затронуты.Рекомендуется использовать эту команду только при начальной установке или если файлы сервера были изменены.
Поддерживаемые сервера
Список выделенных серверов содержит известные сервера, которые использует SteamCMD.

app_update
.Автоматизация SteamCMD
Есть два способа для автоматизации SteamCMD.

steamcmd
на ./steamcmd.sh
для Linux/OS X.Командная строка

-beta
в командной строке, он должен быть заключён в кавычки, например, +app_update "90 -beta beta"
.
"+app_update 90 -beta beta"
.Вводить команды в командной строке необходимо с символом плюс в качестве префикса, например:
steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 +quit
Чтобы установить определённый мод для HL1, таких как Counter-Strike: Condition Zero:
steamcmd +login anonymous +force_install_dir ../czero +app_set_config 90 mod czero +app_update 90 +quit
Для игры которая требует авторизацию, такой как Killing Floor:
steamcmd +login <username> <password> +force_install_dir c:\KFServer\ +app_update 215350 +quit
Создание сценариев
1. Введите ваши команды SteamCMD в текстовом файле. (Вы можете добавить комментарии, которые начинаются с //
.)
Пример:
// update_csgo_ds.txt
//
@ShutdownOnFailedCommand 1 //поставьте 0 при одновременном обновлении нескольких серверов
@NoPromptForPassword 1
login <username> <password>
//for servers which don't need a login
//login anonymous
force_install_dir ../csgo_ds
app_update 740 validate
quit
2. Запустите SteamCMD с опцией +runscript
, ссылаясь на файл который вы только что создали.
Пример:
steamcmd +runscript csgo_ds.txt
Кросс-платформенная установка
Можно выбрать платформу для которой необходимо скачать файлы, даже если это не та платформа на которой вы сейчас работаете. Это делается с помощью переменной @sSteamCmdForcePlatformType
. (Да, это два "s" в начале имени переменной.) Например, чтобы загрузить выделенный сервер для Windows CSGO на Linux, вы можете запустить следующую команду:
./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit
или использовать следующий сценарий:
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
@sSteamCmdForcePlatformType windows
login anonymous
force_install_dir ../csgo_ds
app_update 740 validate
quit
Поддерживаемые значения windows
, macos
и linux
.
Windows ПО/Сценарии
SteamCMD AutoUpdater
Установка и автоматическое обновление любого игрового сервера
GitHub: https://github.com/C0nw0nk/SteamCMD-AutoUpdate-Any-Gameserver
condenser
condenser это загрузчик для установки, настройки, и запуска выделенных игровых серверов Steam.
SteamCMD GUI
Этот инструмент позволяет использовать SteamCMD на Windows, без командной строки и/или пакетных файлов.
GitHub: https://github.com/DioJoestar/SteamCMD-GUI
SteamCMD Guardian 1.2
Посмотреть и загрузить можно здесь: http://pastebin.com/BRUbsGQh
Linux Сценарии
Linux Game Server Managers
Linux Game Server Managers приложение командной строки для быстрого, простого развёртывания и управления различных специализированных игровых серверов использующих SteamCMD.
Возможности
- Установка сервера (SteamCMD)
- Запуск/Остановка/Перезапуск сервера
- Обновление сервера (SteamCMD)
- Мониторинг сервера (включая e-mail уведомления)
- Резервное копирование сервера
- Командная строка сервера
Поддерживаемые сервера
- ARMA 3
- Blade Symphony
- Counter-Strike
- Counter-Strike: Condition Zero
- Counter-Strike: Global Offensive
- Counter-Strike: Source
- Day of Defeat
- Day of Defeat: Source
- Fistful of Frags
- Garry's Mod
- Half-Life: Deathmatch Classic
- Half-Life 2: Deathmatch
- Insurgency
- Just Cause 2
- Killing Floor
- Left 4 Dead
- Left 4 Dead 2
- No More Room in Hell
- Natural Selection 2
- Red Orchestra: Ostfront 41-45
- Team Fortress Classic
- Team Fortress 2
- Team Fortress Classic
Полный список серверов и инструкции: http://danielgibbs.co.uk/lgsm
GitHub репозиторий: https://github.com/dgibbs64/linuxgameservers
SteamCMD Guardian 1.2
Следующий сценарий был протестирован на Debian Wheezy.
Посмотреть и загрузить можно здесь: http://pastebin.com/hcpMpmaZ
Установка
Для работы сценария необходимо достаточно свободного места. Предпочтительно использовать отдельно созданного пользователя (например steam) с его собственной домашней директорией (/home/steam). Необходимо войти под этим пользователем через SSH, tty или используя su.
- Создайте файл.
nano updateserver.sh
- Вставьте код
- Измените код, добавив по крайней мере 1 игру в строку
DL_SV*=
. - Закройте файл Ctrl+O, затем ↵ Enter и в конце Ctrl+X.
- Дайте права на исполнение для пользователя
chmod u+x ./updateserver.sh
- Запустите файл
./updateserver.sh
Файл автоматически загрузит SteamCMD, обновит и установит все выбранные игры (до 4). Запустите файл повторно для обновления игр.
Известные проблемы
Failed to install app 'xxxxxx' (No subscription)
Если вы получаете ошибку 'No subscription', то необходимо войти под Steam аккаунтом в котором эта игра приобретена. См. Список выделенных серверов.

Для примера
steamcmd +login <username> <password>
32-битные библиотеки на 64-битных дистрибутивах Linux
Так как SteamCMD это 32-битная программа, для запуска требуются некоторые 32-битные библиотеки, даже если у вас уже установлены 64-битные версии.
Может произойти следующая ошибка:
steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Решение зависит от вашего дистрибутива:
Дистрибутивы основанные на Debian (Ubuntu, Mint, и т.д.)
sudo apt-get install lib32stdc++6

ia32-libs
не требуется для установки SteamCMD; lib32gcc1
будет достаточно.На Debian 7 "Wheezy" вы можете столкнуться с такой ошибкой:
The following packages have unmet dependencies: ia32-libs : Depends: ia32-libs-multiarch but it is not installable E: Unable to correct problems, you have held broken packages.
Чтобы исправить это, выполните следующие действия:
dpkg --add-architecture i386
apt-get update
apt-get install lib32gcc1
Дистрибутивы основанные на Red Hat (RHEL, Fedora, CentOS, и т.д.)
yum install glibc.i686 libstdc++.i686
Arch Linux
Не забудьте сначала включить репозиторий Multilib.
pacman -S lib32-gcc-libs
Login Failure: No Connection
На Linux вы можете получить ошибку "Login Failure: No Connection". Она связана с отсутствующими правилами iptables. Необходимо их прописать например вот так:
iptables -A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 4380 --dport 1025:65355 -j ACCEPT
Список портов может быть найден здесь: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=russian
На серверах Windows вы можете столкнуться с ошибкой "SteamUpdater: Error: Download failed: http error 0" и "SteamUpdater: Error: Steam needs to be online to update. Please confirm your network connection and try again.". Это как правило решается установкой опции "Автоматическое определение параметров" в IE (Internet Explorer) через настройки локальной сети в меню Свойства браузера.
- Откройте Internet Explorer (IE).
- Нажмите на Инструменты → Свойства браузера
- Нажмите на вкладку Подключения
- В нижней части вы должны увидеть Настройки параметров локальной сети
- Проверьте первый флажок (Автоматическое определение параметров)
- Нажмите на OK, и Применить.
Попробуйте запустить SteamCMD снова. Если по-прежнему не работает, то попробуйте уменьшить свой Уровень безопасности для этой зоны на средний или ниже на вкладке Безопасность в Свойства браузера.
Ошибки запуска SteamCMD
Unable to locate a running instance of Steam
Вы можете получить следующее сообщение об ошибке при запуске сервера на Linux:
[S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.
Решить проблему можно сделав символическую ссылку steamclient.so</code на
~/.steam/sdk32/steamclient.so
:
ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so
Ошибка запуска ulimit Linux
Некоторые пользователи могут получить ошибку ULIMIT
(no permission/cannot open file) во время запуска сценария. Эта ошибка вызвана маленьким значением параметра -n
(число файловых дескрипторов) ULIMIT
. SteamCMD использует стандартные команды внутри сценария оболочки инициализации, чтобы изменить ULIMIT
автоматически, но некоторые серверы могут запретить повышение значения ULIMIT
после запуска (или за пределы лимита, установленного root
).
Это может быть исправлено путём изменения ограничения на максимальное число открытых файлов ulimit:
ulimit -n 2048
Если появляется ошибка (no permission), вам придётся войти под root чтобы изменить параметр. Чтобы проверить текущую настройку введите ulimit -a. Система выдаст много строк, но вам нужно будет найти только одну:
open files (-n) 1024
В этом случае 1024 является текущим значением.
Вы можете также изменить ограничения в файле /etc/security/limits.conf
.
В большинстве случаев вы просто получите предупреждающее сообщение, однако это не остановит запуск SteamCMD.
Загрузка HLDS
При попытке скачать мод HL1, таких как TFC, сначала загружаются файлы HLDS, но не мод. Это происходит как с обычной версией так и с бета-версией. Вам, возможно, придётся пробовать скачать несколько раз, пока все необходимые файлы не будут загружены, но как только это будет сделано, файлы должны будут правильно обновиться в следующий раз.
Обход этой проблемы здесь: http://danielgibbs.co.uk/2013/11/hlds-steamcmd-workaround-appid-90/
Просто удалив файлы appmanifest, без загрузки замены из сторонних источников, это может сработать. Вы получите в начале сообщение об ошибке из-за удалённых файлов, но загрузка должна продолжится.
Примечание:По некоторым причинам CS всегда устанавливается также.
См. также