Автоматизация нескольких серверов

denetti

Участник
Сообщения
23
Реакции
1
Собственно нужно поставить, чтобы несколько серверов при одновременной работе могли обновиться.
Если запускаю по очереди, обновляются спокойно. Ставлю 2 и более на обновление, 1 начинает обновляться, на 2 появляются различные ошибки.
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
denetti, Увы, да, при одновременном запуске SteamCMD глючит.. Попробуй запускать по очереди с задержкой в 30-60 ссекунд, ошибок быть не должно. Имеется ввиду запустил один, через 30 секунд после запуска первого запустил второй (не дожидаясь окончания первого) и т.д.
 

denetti

Участник
Сообщения
23
Реакции
1
KorDen, а когда выйдет обновление? Сервера же начнут одновременно обновляться, вот тут и начнется бредятина. Я вот про это говорю как можно решить?
 

SaInT.P

Участник
Сообщения
1,268
Реакции
226
KorDen, а когда выйдет обновление? Сервера же начнут одновременно обновляться, вот тут и начнется бредятина. Я вот про это говорю как можно решить?

Тебе же написали!
Попробуй запускать по очереди с задержкой в 30-60 ссекунд, ошибок быть не должно. Имеется ввиду запустил один, через 30 секунд после запуска первого запустил второй (не дожидаясь окончания первого) и т.д.
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
SaInT.P, верный вопрос, он про автообновление судя по всему..

denetti, тут нужно по идее синхронизировать рестарты серверов плагинами, это уже веселее будет... Чисто теоретически реализуемо, а на практике...
 

TolikCorp

Участник
Сообщения
874
Реакции
334
Я, может быть, не вовремя написал, но:
@ShutdownOnFailedCommand 0 //Установите 0 для обновления нескольких серверов за раз
@NoPromptForPassword 1

login anonymous
force_install_dir АБСОЛЮТНЫЙ ПУТЬ
app_update 740 validate
quit
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
TolikCorp, Это совершенно ни при чем, это актуально при ПОСЛЕДОВАТЕЛЬНОМ обновлении нескольких серверов в одном скрипте
 

tiger_by

Гл. Админ SourceGames.RU
Сообщения
631
Реакции
278
У меня все работает на ура.
Серверные файлы одни на несколько серверов.
И нижие покажу как уменя набыдлокодены скрипты апдейта и запуска в том виде, как есть.
PHP:
#! /bin/bash

log="./logs/update$(date +%d%m).log"

for i in {1..6}; do
    /home/tf2/tf.sh $i stop; sleep 2
done
    /home/tf2/steamcmd.sh +login anonymous  +force_install_dir /home/tf2/srv_files/ +app_update 232250 +quit #validate +quit
    rm -f  /home/tf2/srv_files/tf/cfg/config_arena.cfg*
for i in {1..6}; do
    /home/tf2/tf.sh $i start
done
PHP:
#! /bin/bash

ARGS=2
if [ $# != 2 ]; then
    echo "Usage: $0 {1 - 6} {start|stop|restart}"; exit 3
fi 


    port=27014
    path="/home/tf2/srv_files/"
    run='./srcds_run -game tf -ip 0.0.0.0 +maxplayers 32'
    port=$(( $port + $1 ))
    map=`head -n 1 ${path}tf/cfg/mapcycle.txt$1`
    if [ $1 = 6 ]; then
        port=27025
    fi

function start
{
screen -A -m -d -S server$1 ${path}${run} -port $port +clientport $(( $port + 100 )) +map $map +mapcyclefile mapcycle.txt$1 +servercfgfile server.cfg$1 +sm_basepath addons/sourcemod$1 +mm_pluginsfile addons/metamod/metaplugins.ini$1 -debug
}

# run command on server $srv

case $2 in

"start" )
        if ps ax | grep $port | grep -v grep >/dev/null; then
                echo "server $1 already running!"; exit 2; else
                echo -ne "Starting server $1..."; start $1 && echo -ne " \t[ok]\n"
        fi

;;

"stop" )
    echo -ne "Stoping server $1... "; kill -9 `ps ax | grep $port | grep "srcds_run" | grep -v grep | awk '{print $1}'` 2>/dev/null && echo -ne "\t[ok]\n"
screen -wipe > /dev/null
;;

"restart" )
    echo -ne "Stoping server $1... "; kill -9 `ps ax | grep $port | grep "srcds_run" | grep -v grep | awk '{print $1}'` 2>/dev/null && echo -ne "\t[ok]\n"; sleep 2
    if ps ax | grep $port | grep -v grep >/dev/null; then
                echo "server $1 already running!"; exit 2; else
                echo -ne "Starting server $1..."; start $1 && echo -ne " \t[ok]\n"
        fi
        
;;

"*" )
    echo "Usage: $0 {1 - 6} {start|stop|restart}"; exit 3
;;

esac
cat srv_files/tf/addons/metamod/metaplugins.ini1
PHP:
;If your plugin came with a .vdf file, you do not need to use this file.
;
;List one plugin per line.  Each line should contain the path to the plugin's binary.
;Any line starting with a ';' character is a comment line, and is ignored.
;
;You do not need to include the _i486.so or .dll part of the file name.  Example:
; addons/sourcemod/bin/sourcemod_mm
;You may also put an alias in front of the file, for example:
; sm addons/sourcemod/bin/sourcemod_mm
;Will allow you to use "meta load sm" from the console.
;
;********* LIST PLUGINS BELOW ***********

addons/sourcemod1/bin/sourcemod_mm

З.Ы.: Кто бы напомнил как указывать имя лог файла параметром запуска, был бы благодарен.
 
Сверху Снизу