Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
BorizzK

Запускальщик/рестартер с бэкапом логов, базы и настроек

Recommended Posts

Накатал по быстрому для себя и своих ребят от нефиг делать, тк в командировке и дейзить возможности нет, только удаленно ковырять сервер
Внутри настройки через переменные
путь к базе сервера и инстанс ид берет из конфига сервера (нужно настроить имя файла и путь в файле)
Мониторит сервер по названию окна, сохранив pid
При вылете в 90% случаев корректно убивает процесс
При перезапуске так же
При каждом старте с 0 и при перезапусках делает бэкапы баз/настроек/

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by BorizzK
Добавление новой версии (see edit history)

Share this post


Link to post
Share on other sites







Улучшил немного

Было не оч красиво
1 Не было проверки есть сервер и конфиг в папке или нет

2 Теперь есть проверка на повторно запущенный скрипт из одной и той же папки (костыльно, но вполне по линуховому - через pid файл)
если уже запущен скрипт заново запущенный скрипт закрывается

 

Обновил файл
убрал одну проверку

не учел сначала что если серв запускается впервые то и папки storage нет и проверка бы не прошла

убрал ее

 

+ Как бы требуются еще усовершенствования

Доеду до дома доведу до ума

 

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

Допилил скрипт

в одной виртуалке

неск серверов в одном сеансе
в скрипте меняю только порт

распознает

повторный запуск исключен в 99% случаев

если окно cmd закрыть ручками бывает cmd зависнет в памяти

и тогда в принципе распозает тк титл окна у зависшего cmd обнуляется

однако в памяти он всеравно остается (винда блиг, хотя подобные приколы стали и на линухе случаться с башем)

но такое бывает крайне редко

 

вобщем у меня и у коллег работает

 

буду считать финальным вариантом

 

Пользоваться не сложно

Поместить в корень с сервером

 

Внутрях поменять/прописать

 

  Версия сервера - при каждом обновлении придется менять посмотрев на версию в заголовке окна
  set "Version=1.0.150000"
  :::Имя экзешника
  set "SrvName=DayZServer_x64.exe"
  :::папка с конфигом/логами/профилем сераерв
  set "SrvConfPath=Instance_1"
  :::Имя файла с конфигом
  set "srvconfigfile=server.cfg"
  :::Порт сервера
  set "Port=2302"
  :::Список модов которые Вы указываете в параметрах для запуска в ключе -mod= - если папки с модами не обнаружены то переменная будет проигнорирована
  set "mods=mytestmod1,mytestmod2"

 

P.S. насколько я понял каждый мод это отдельная папка, верно?

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

Дополнение
рекомендую добавить в реестр

 

reg add "HKLM\Software\Microsoft\Windows\Windows Error Reporting" /v "DontShowUI" /t REG_DWORD /d 1 /f

 

Ибо WER любит запрс про крашнуте приложение вывести и ждать Вашего ОК и все это время сервер будет считаться запущенным

 

Старый скрипт прибил

Доработанный выложу позже!

 

Всех с НГ!

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

Всех с НГ

Допилил скрипт

К сожалению пришлось покостылить, тк виндовый шелл местами кривой, а я привык скриптить под линухом где все четко и по нормальному

В итоге от ENABLEDELAYEDEXPANSION пришлось отказаться по некоторым причинам

Вобщем получилось вполне работоспособно

 

Внутрях каменты на русском и английском

 

Кому надо тот разберется, а кто не разберется пишите вопросы и пожелания в этой теме

 

Кроме возможностей выше

гасит зависшие процессы дейза

если Вы вдруг закрыли окно скрипта а бек (если разрешен) и сервер дейз запущены

скрипт берет управление при запуске

Так же при запуске частично проверяет корректность настроек Bec, BE и самого сервера Dayz

 

Теперь добавлена возможность перезапуска и выключения через помещение файла restart или shutdown в корень папки
если файлы пустые то таймаут по умолчанию 2сек

если в файле указать время то перед перезапуском и выключением будет задержка согласно указанному времени в секундах

я в своей чат-админке это реализовал

очень удобно

 

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

Всё это хорошо и увлекательно, только вот зачем использовать сторонний проприетарный архиватор?

Share this post


Link to post
Share on other sites

Не на все моды реагирует почему то... а точнее стоит админка от "Томато" Так он пишет на нее Error типо не может найти хотя все прописал как в "параметрах запуска" И вообще пытался без нее прогрузить моды. Не цепляет он их почему то... хотя приблуда годная... моды бы только нормально цепляла... хотя может косяк у меня... 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by saikodelic (see edit history)

Share this post


Link to post
Share on other sites

А когда все запускаю без твоего батника все работает все функционирует на сервере... 

Share this post


Link to post
Share on other sites

saikodelic Хрен знает
Мод это отдельная папка или как?

Вижу что папки

Только на скрине не вижу ругагани

Каждый мод в папку

папка в списке

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

Еще чуть допилил

перезагрузка сервера дейз и хост-машины инклюдед

гайд после того как допилю одминку

 

 

 

 

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

Зафиналил скрипт

Работает нормально на нескольких боевых серверах

 

Ловит команды от моей админки (выложу в соответствующей теме чуть позже)

 

Внутри кучв каментов и основные на русском

 

все обсуждения тут, а не в личке

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

BorizzK вот со строчками о сервере я и туплю, что да как там вписать) боюсь сломать)

Share this post


Link to post
Share on other sites

Два вопроса:

Что такое steamqueryport и почему не запускает bec?

Share this post


Link to post
Share on other sites

rNk1337 А бек в папке BEC в корне сервера?

А версия бека какая?

Чуть ниже спустись  к настройкам BEC

 

	::: BEC SETTINGS BEGIN
		::: Включение/отсключение BEC
		set "becenable=true"
		::: Имя файла сервера BEC
		set "BecSrvName=Bec.exe"
		::: Имя файла конфига сервера BEC
		set "becconfig=Config.cfg"
		::: Путь к BEC
		set "becpath=%SrvCd%\Bec"
	::: BEC SETTINGS END

 

и еще пусть к баттлай в конфиге бек
куда кажет?

 

содержимое файла конфига баттлай BEServer_x64.cfg

 

RConPassword пароль
RestrictRCon 0
RConPort 2303
RConIP 127.0.0.1

 

Такое?

 

Он там должен написать почему если все типа верно

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

BorizzKпапка BEC в корне сервера, конфиг BEC находится в папке BEC/config а BEServer.cfg который с рконпассом находится в папке Battleye

Share this post


Link to post
Share on other sites

Папка с баттлай по умолчанию сервером создается и туда копируется библиотека в папку которая находится в папке указанной в парамтре -profile

 

Share this post


Link to post
Share on other sites
	::: DAYZ SERVER SETTINGS BEGIN
		::: Версию менять только на актуальную отображаемув в заголовке окна сервера !!!
		set "Version=1.0.150000"
		
		::: Имя файла сервера
		set "SrvName=DayZServer_x64.exe"
		
		::: Порт сервера
		set "Port=2303"
		
		::: Папка с конфигом сераера (не должна содержать нелатинские символы)
		set "SrvConfPath=!ConfigServer"
		
		::: Имя файла конфига сервера 
		set "SrvConFigfile=server.cfg"
		
		::: Папка профиля сервера, логи, временные файлы, библиотека баттлай для rcon и профиль сервера
		::: В ней лежат динамические настройки и файл с переменными профиля сервера который может хранить некоторые данные состояния мира и да же игроков когда либо подключавшихся к серверу !!!
		::: (не должна содержать нелатинские символы) (так же путь $profile: в серверных скриптах указывает на эту папку)
		::: на эту папку настроены функции отсылки сообщений restart shutdown и machinerestart в AdminTools
		::: Может отличаться от папки конфига сервера
		set "SrvProfilesPath=%SrvConfPath%"
		
		::: Должна быть = SrvProfilesPath (ВРОДЕ БЫ НЕ ИСПОЛЬЗУЕТСЯ)
		::: set "ServerUserPath=!ProfilesServer"
		
		::: Максимальное кол-во памяти сервера (Если сервер запускается 1: Для 16Gb RAM 12288, для 32Gb RAM - 12288 x 2, если 2 - Для 16Gb 7192, для 32Gb RAM - 7192 x 2)
		set "maxmem=12288"
		
		::: Максимальное кол-во используемых ядер процессора
		set "-cpuCount="
		
		::: Моды через запятую (как в параметре -mod=) (если папки с модом нет, оно будет проигнорированно)
		set "mods="
		
		::: Приритет при запуске по умолчанию /NORMAL (см параметры команды start)
		set "priority=/NORMAL"
		
		::: Доп Параметры для строки запуска сервера
		::: Имя сервера, на самом деле имя папки в %SrvProfilesPath%\Users и заголовка имени файлов с профилем сервера (не должна содержать нелатинские символы)
		set "ServerName=Server"
		::: Позволяет распакаовать scripts.pbo в корень папки сервера и использовать ее вместо scripts.pbo, соответственно можно вносить изменения в серверные скрипты
		set "-filepatching=-filepatching"
		::: Включает возможность записи в файлы из скриптов на стороне сервера
		set "-scrallowfilewrite=-scrallowfilewrite"
		set "-freezecheck=-freezecheck"
		set "-autoinit=-autoinit"
		set "-adminLog=-adminLog"
		set "-ShowScriptErrors=-ShowScriptErrors"
		set "-debugLog=-debugLog"
		set "-dologs=-dologs"
		set "-netlog="
		::: Строка параметров запуска сервера формируется ниже на основе параметров указанных в этой секции
	::: DAYZ SERVER SETTINGS END

	::: BEC SETTINGS BEGIN
		::: Включение/отсключение BEC
		set "becenable=true"
		::: Имя файла сервера BEC
		set "BecSrvName=Bec.exe"
		::: Имя файла конфига сервера BEC
		set "becconfig=Config.cfg"
		::: Путь к BEC
		set "becpath=%SrvCd%\Bec"
	::: BEC SETTINGS END

 

Share this post


Link to post
Share on other sites

Внимательно изучите параметры из скрипта выше
пути там указанны относительные

 

и вот конфиг моего BEC

 

#--------------------------------------------------------------------------------------------------------
[Bec]
#--------------------------------------------------------------------------------------------------------

# Set the ip to your server. normally 127.0.0.1 will be fine.
Ip = 127.0.0.1


# Set the port to the server. default port is 2302
Port = 2303


# Set the path to the BattlEye directory that is currently in use by the server.
BePath = D:\DAYZSERVER\DayZServer_1.0.150\!ConfigServer\BattlEye


# Set the path to your Admins.xml file containing your admins.
Admins = Admins.xml


# Set the path to your Commands.xml file.
Commands = Commands.xml

#Log directory
LogDir = .

 

Share this post


Link to post
Share on other sites

BorizzK все правильно папка battleye создалась в профиле сервера, почему бек не запускается пути верные

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Share this post


Link to post
Share on other sites

Явно пишет что конфиг не видит

у меня на всех видит

 

Share this post


Link to post
Share on other sites

Пройдитесь вниз скрипта и посмотрите как и что он проверяет

 

И прекращайте держать серваки в папке стима

выносите их оттуда - ибо любое обновление все потереть может нафиг

 

просто папку DayZServer копируете куда угодно и оттуда запускаете

ему пофиг на стим

 

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

BorizzK Можно ваш BEC пожалуйста ну или его конфиг

Рестартер показывает что неправильно записан порт в Config.cfg BEC, хотя там все верно, какой порт сервера такой и порт BEC

 

Прошу меня извинить, кривой BEC мне попался вот и все...

 

Edited by rNk1337 (see edit history)

Share this post


Link to post
Share on other sites

Порт должен соответствовать порту дейза и порту в конфиге баттлай

хотя по идее просто порту баттлай

но у меня проверка по порту дейз

что наверное поменяю потом

 

Я так понял вопрос решен?

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

BorizzK Спасибо за помощь на этом этапе решен. Все таки попытаюсь выпросить у Вас заведомо рабочий BEC, мой ни в кaкyю не хочет подключаться к серверу...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 6agu
      Поставил
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • By 123new
      Много вопросов на данную тему наблюдаю от новичков, попробую прояснить немного сей вопрос.
       
      Предположим. что вы уже знаете на каких координатах вам надо спавнить определенное здание или объект\животное\бота, с каким углом поворота. И так. эта тема для вас.
       
      Сразу делаю пометку, метод, который добавили нам разработчики игры в патче 1.15, очень хорошо описал наш товарищ в сообщении форума:
      Рекоммендую вам использовать именно его!
      Ниже опубликованы старые методы.
       
      Если вы с расставили их с модифицированной версии Offline (Offline by Arksenor это называется), то вы получили и нашли код вида:
      GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13260.040039 0.0 3670.984131").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13262.756836 0.0 3645.180176").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13265.441406 0.0 3619.531982").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13268.124023 0.0 3593.995361").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13270.844727 0.0 3568.186523").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13273.514648 0.0 3542.561279").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13276.195313 0.0 3517.048828").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13278.399414 0.0 3496.097900").SetOrientation("-96.000000 0.000000 0.000000"); Здесь (по примеру первой строки) 1 значение в скобках - id постройки/объекта, 2 значение - координаты в формате X Y Z, разделенные пробелом, 3 - значение поворота примерно в том же формате.
      Как это делать в Offline - статья от автора Offine:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Add-custom-objects-to-your-server-or-mission
       
      И так, инструкция:
      1. Добавляем в начало init.c файла в вашей mpmissions следующий код:
      #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\spawn_buildings.c" 2. Создаем в папке вашей активной mpmissions файлик spawn_buildings.c и заполняем его следующей информацией.
      void SpawnObject( string type, vector position, vector orientation ) { private string NameBlockLog = "[CreateObject] "; private string InfoLog = ""; if(type != "") { auto obj = GetGame().CreateObject( type, "0 0 0" ); if(obj) { if ((position[0] != 0) && (position[1] != 0) && (position[2] != 0)) { obj.SetPosition( position ); obj.SetOrientation( orientation ); obj.Update(); if (obj.CanAffectPathgraph()) { obj.SetAffectPathgraph(true, false); GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj); } InfoLog = "[Type: '" + obj.GetType() + "' Position: '" + obj.GetPosition().ToString() + "' Orientation: '" + obj.GetOrientation().ToString() + "']"; Write_Log(NameBlockLog + " Object has been created successfully! Info " + InfoLog); } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed position. Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed type. Info " + InfoLog); } } void Write_Log(string message) { Print(String(message)); } 3. Открываем созданный нами файл,  и в конце файла дописываем следующее:
      void SpawnAirfeeldBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } void SpawnKrasnoBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } Где после void - название функции идет, а между открытыми скобками вызов спавна самих зданий на указанных координатах.
      На примере 1 строки:
      Land_CementWorks_ExpeditionB - id постройки (type)
      13251.875000 0.0 3748.525879 - координаты в формате X Y Z
      -96.000000 0.000000 0.000000 - значение поворота в формате X Y Z
      Внимание: id постройки и координаты в примере указаны не верные и требуют подключения дополнительной модификации для корректной работы!!! Координаты не соответствуют названию функции!!!
      4. открываем в MpMissions в папке с вашей активной миссией init.c и перед ЗАКРЫВАЮЩЕЙ скобкой '}' дописываем нужную нам функцию (это будет активация спавна на карте):
      SpawnAirfeeldBuildings(); 5. Готово, Запускайте сервер, и в scripts.log вы увидите процедуру спавна ваших зданий и увидите, спавнятся ли они на карте или нет.
      Можно написать конечно и более готовую, универсальную систему спавна на карте со считыванием конфигурации из файла, но я считаю это лишним.
       
      Как заполнить добавленные здания лутом на карте:
      вариант 1:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Enable-loot-for-custom-placed-objects
      вариант 2: вручную заполнить xml-файл  mapgrouppos.xml в mpmssions данными о местоположении зданий, где rpy - значение поворота здания в формате Z Y X
       
      С помощью данной статьи вы можете разместить любой элемент игры(постройку, животное, зомби, бота), доступный к спавну через любую модификацию-админ. панель. Очень полезный мод в этом смысле BuilderItems, с его помощью можно творить поистину интересные локации!
    • By Venom21
      Появилась такая проблема, нужно закрыть некоторые слоты под одежду, когда на определённый слот одет предмет…
      пример: возьмём экзоскелет от Фидова, там есть две версии которая одеваеться как на тело и ноги, и есть которая одеваться на разгрузку и пояс, так вот, нужно например чтобы при одетом экзаче на тело и ноги слоты под пояс и разгрузку блокировались, либо только под определенные предметы, если есть интерес то цену можем в личке обсудить…
      P.S. Разрешение от Фидова на переделку и переупаковку есть)
    • By CubeIn
      Здарова, уважаемые знатоки, вопрос.
      Мне скриптер скинул скрипт и сказал закинуть её в северную часть, но не указал куда именно. Подскажите пожалуйста, куда мне её деть? 
    • By CubeIn
      Здарова всем!
      У меня срочный вопрос опытным хозяинам серверостроения. Есть ли возможность настроить холод на карте Namalsk? А то слишком холодновато игрокам, а где это настраивать...
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.