Итак, что же такое SteamCMD? Это новая система распространения контента игровых серверов, которые перешли на новую систему хранения SteamPipe. Если игра не перешла на SteamPipe, она распространяется через HLDSUpdateTool.
1. SteamCMD можно скачать по следующим ссылкам(официальные):
- Windows (http://media.steampowered.com/client/steamcmd_win32.zip)
 Linux: wget http://media.steampowered.com/client/st ... nux.tar.gz
- Debian, Ubuntu, Mint и т. д.:
Если выходит ошибка:Код: Выделить всё apt-get install ia32-libs
 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.
 Пишем это:Потом:Код: Выделить всё sudo dpkg --add-architecture i386перед запуском apt-get install ia32-libsКод: Выделить всё sudo apt-get update
- Red Hat, RHEL, Fedora, CentOS и т. д.:
Код: Выделить всё yum install glibc.i686 libstdc++.i686
- Arch Linux:
 Вначале включаем репозиторий multilib
 и пишем этоКод: Выделить всё pacman -S lib32-gcc-libs
2. Далее нам надо распаковать SteamCMD:
- Внимание, не распаковывайте SteamCMD в папку с клиентом Steam или HLDSUpdateTool
 Для Linux:Код: Выделить всё tar xvfz steamcmd_linux.tar.gz
3. Теперь нужно запустить SteamCMD в первый раз(он скачает файлы своей платформы)
Открываем командную строку и пишем(Для Linux это SSH, для Windows я не знаю)
- Windows: steamcmd
 Linux: ./steamcmd.sh
После запуска, когда всё загрузится пишем quit чтобы выйти с steamcmd.
Установка завершена!
Для загрузки большинства серверов можно залогиниться(войти в систему) анонимно.
Код: Выделить всё
login anonymousЗаметка: сначала выйдите из обычного steam клиента.
Код: Выделить всё
login <логин>При успешной авторизации вы увидите надпись successful.
Загрузка серверов:
1. Запускаете SteamCMD и указываете папку, в которую нужно загрузить сервер игры.
Код: Выделить всё
force_install_dir <путь>К примеру, указываем папку cs_go из текущей директории:
Код: Выделить всё
force_install_dir ./cs_go/2. Для загрузки сервера или обновления используем app_update:
Код: Выделить всё
app_update <ID сервера>Код: Выделить всё
app_update 740 validateКод: Выделить всё
app_update 90 -beta betaКод: Выделить всё
app_update 4940 -beta "имя беты" -betapassword "пароль от беты" validateПосле загрузки пишем quit, чтобы выйти из SteamCMD.
Вот список серверов, которые теперь распространяются только через SteamCMD:
Любые дополнительные опции командной строки должны быть указаны перед командой app_update!
Баг: Чтобы мод на HLDS(игра, к примеру CS или HL) нормально работал, нужно скачать его пару раз.(не докачивает файлы)
Примичания:
1: В скриптах для автоматизации, для дополнительных аргументов "+" не нужен.(к примеру +app_set_config будет app_set_config)
2: Бета сервера загружаются с аргументом -beta beta
3: Для некоторых серверов недбходимо заходить с anonymous.(К примеру для CS: S надо заходить из-под anonymous)(прим. перевод. мне кажется, это не фича, а баг.)
Код: Выделить всё
Сервер                                                                    ID         Дополнительные опции командной строки
HLDS for Half-Life and Counter-Strike 1.6	                              90
Counter-Strike: Condition Zero Beta dedicated server	                   90	     +app_set_config "90 mod czero"
Deathmatch Classic Beta dedicated server	                               90	     +app_set_config "90 mod dmc"
Day of Defeat dedicated server	                                         90	     +app_set_config "90 mod dod"
Half-Life: Opposing Force Beta dedicated server                        	90	     +app_set_config "90 mod gearbox"
Ricochet Beta dedicated server	                                         90	     +app_set_config "90 mod ricochet"
Team Fortress Classic Beta dedicated server	                            90	     +app_set_config "90 mod tfc"
Counter-Strike: Global Offensive dedicated server	                      740
The Ship dedicated server	                                              2403
Garry's Mod dedicated server	                                           4020
Natural Selection 2 dedicated server	                                   4940
Natural Selection 2 Beta dedicated server	                              4940	   -beta beta
Serious Sam 3 dedicated server	                                         41080
Nuclear Dawn dedicated server	                                          111710
Red Orchestra: Ostfront 41-45 Windows dedicated server	                 223240
Red Orchestra: Ostfront 41-45 Linux dedicated server	                   223250
Red Orchestra 2: Heroes of Stalingrad and Rising Storm Windows DS	      212542
Killing Floor Windows dedicated server	                                 215350
Killing Floor Linux dedicated server	                                   215360
Left 4 Dead 2 dedicated server	                                         222860
Team Fortress 2 dedicated server	                                       232250
Day of Defeat: Source dedicated server	                                 232290
Counter-Strike: Source dedicated server	                                232330
Half-Life 2: Deathmatch dedicated server	                               232370
Blade Symphony Beta dedicated server	                                   228780
Source SDK Base 2013 MP dedicated server	                               244310
Half-Life Deathmatch: Source dedicated server	                          2554701. К примеру, можно вставить параметры загрузки как аргументы:
Код: Выделить всё
steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quitКод: Выделить всё
steamcmd +login <логин> <пароль> +force_install_dir c:\KFServer\ +app_update 215350 validate +quitКод: Выделить всё
// csgo_ds.txt
//
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
login <логин> <пароль>
//для серверов, которые не приватные
//используйте login anonymous
force_install_dir ../csgo_ds
app_update 740 validate
quitКод: Выделить всё
steamcmd +runscript csgo_ds.txtТеперь можно не париться и загружать сервер под Linux из Windows или наоборот!
Как же это сделать?
Для этого появился новый параметр SteamCMD!
Код: Выделить всё
@sSteamCmdForcePlatformTypeК примеру загрузить Windows сервер CS: GO из под Linux:
Код: Выделить всё
./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quitКод: Выделить всё
steamcmd.sh +@sSteamCmdForcePlatformType linux +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quitКод: Выделить всё
steamcmd.sh +@sSteamCmdForcePlatformType macos +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Код: Выделить всё
::=======================::
:: SteamCMD Guardian 1.2 ::
::       ckynick254      ::
::=======================::
set programname=SteamCMD Guardian 1.1
::=======================::
::  SET YOUR VARIABLES!  ::
::=======================::
set servername=
set username=
set password=
::=======================::
::      Your folder      ::
::    Replace after =    ::
::=======================::
set runcmd=E:\Games\
 
::=======================::
::   End of variables    ::
::=======================::
 
:: This will keep the window clean and easy to read
@ECHO off
 
:: Sets the title of the window
title %programname% - %servername%
 
:: Clears the window incase there is anything there
cls
COLOR 1f
CD %runcmd%
 
:: Prints to the window what we are doing
ECHO %programname% has been started!
:start
ECHO.
ECHO.
ECHO   ##############################################################
ECHO   #                    Dedicated Server                        #
ECHO   # 1 - Half-Life: Deathmatch and Counter-Strike               #
ECHO   # 2 - Counter-Strike: Global Offensive                       #
ECHO   # 3 - Nuclear Dawn Dedicated Server                          #
ECHO   # 4 - Red Orchestra Dedicated Server                         #
ECHO   # 5 - Red Orchestra 2: Heroes of Stalingrad Dedicated Server #
ECHO   # 6 - Killing Floor Dedicated Server                         #
ECHO   # 7 - Team Fortress 2 Dedicated Server Beta                  #
ECHO   # 8 - HELP!                                                  #
ECHO   # 9 - Exit                                                   #
ECHO   ##############################################################
ECHO.
ECHO.
 
:: Delete variable %A%
SET "A="
SET /P A=Set Your Choice And Press Enter: 
ECHO Loading .........
IF "%A%"=="1" set app=90 
IF "%A%"=="2" set app=740
IF "%A%"=="3" set app=111710
IF "%A%"=="4" set app=223240
IF "%A%"=="5" set app=212542
IF "%A%"=="6" set app=215350
IF "%A%"=="7" set app=229830
IF "%A%"=="8" ECHO.
IF "%A%"=="8" ECHO https://developer.valvesoftware.com/wiki/SteamCMD
IF "%A%"=="8" ECHO.
IF "%A%"=="8" PAUSE
IF "%A%"=="8" goto start
IF "%A%"=="9" EXIT
 
:: This is a return point in case the server crashes or is closed
:restart
ECHO.
ECHO (%date%)(%time%) %servername% is now ONLINE
ECHO Watching %servername% for crashes...
>> "%servername%.log" ECHO.
>> "%servername%.log" ECHO (%date%)(%time%) %servername% is now ONLINE
>> "%servername%.log" ECHO (%date%)(%time%) Watching %servername% for crashes...
 
::Start the actual update window
start /wait steamcmd +login %username% %password% +force_install_dir %runcmd%%app%Server\ +app_update %app% validate
ECHO (%time%) WARNING: srcds closed or crashed, restarting.
ECHO.
ECHO (%date%)(%time%) Crash or Close detected!
ECHO %servername% is now restarting...
>> "%servername%.log" ECHO.
>> "%servername%.log" ECHO (%date%)(%time%) Crash or Close detected!
>> "%servername%.log" ECHO (%date%)(%time%) %servername% is now restarting...
 
::Server crashed or closed, so we point it to the return point to start the server again
GOTO restarthttp://pastebin.com/nwNdT7CT
Редактируем скрипт под себа в текстовом редакторе, заливаем его на сервер, прописываем ему chmod(updateserver.sh - название файла)
Запускаем!
Скрипт сам загрузит SteamCMD и начнет загружать серверы
Редактируем скрипт под себа в текстовом редакторе, заливаем его на сервер, прописываем ему chmod
Код: Выделить всё
chmod u+x ./updateserver.shЗапускаем!
Код: Выделить всё
./updateserver.shКод: Выделить всё
ILocalize::AddFile() failed to load file "public/steambootstrapper_english.txt".
ILocalize::AddFile() failed to load file "public/steambootstrapper_russian.txt".
[  0%] Checking for available update...
SteamUpdater: Error: Download failed: http error 0
[  0%] Download Complete.
[----] Verifying installation...
[  0%] Downloading Update...
[  0%] Checking for available update...
SteamUpdater: Error: Download failed: http error 0
[  0%] Download Complete.
SteamUpdater: Error: Steam needs to be online to update.  Please confirm your ne
twork connection and try again.
[  0%] !!! Fatal Error: Steam needs to be online to update.  Please confirm your
 network connection and try again.Запускаем Internet Explorer и идем в свойства браузера.
Идем на вкладку "подключения" и там нажимаем кнопку "настройки сети".
Ставим галочку на "Автоматическое определение параметров"
Идем на вкладку "подключения" и там нажимаем кнопку "настройки сети".
Ставим галочку на "Автоматическое определение параметров"
В Linux пользователь может получить ошибку при старте, связанную с ulimit (no permission/can not open file)
 Решение
Решение
Для корректной работы steamcmd требуется установка параметра следующим образом: ulimit -n 2048. Хотя в shell-скрипте имеется строка, отвечающая за изменение ulimit, в некоторых системах администратором может быть запрещено изменение параметра пользователем, не имеющим root-привилегий. Перед запуском проверьте параметры ulimit следующим образом: ulimit -a. В ответе терминала нужно найти следующую строку: Здесь значение 1024 — значение uname -n.
Код: Выделить всё
open files                      (-n) 1024На 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 ACCEPTP.S Эта статья является вольным переводом с официального сайта SteamCMD, на официальном сайте есть русская версия, возможно она лучше, но она не обновляется!(возможно мою списали)) )












