Jump to content
DAYZ-CODE.RU - Создай свой игровой сервер

"Батник" и его теневая сторона.bat


Sk1nG
 Share

Recommended Posts

Данная тема покажет, на сколько важны и могущественны иногда могут быть незаметные бат-файлы.

 

С этой темы я начинаю вести ветку адаптации и автоматизации процессов для игровых серверов DayZ с помощью бат-файлов (пакетных файлов).

Данная тема не предусматривает создание сервера с нуля и тд, а только знакомство с пакетными файлами (бат-файлы) и обучение по использованию пакетных файлов по максимум.

 

Начало

Мы разберем пример бат-файла для запуска сервера DayZ, узнаем, как он работает, и увидим, как вы можете использовать его для управления своим сервером. Этот пример не только упростит процесс запуска сервера, но и даст вам основу для создания собственных скриптов автоматизации.

 

Для тех, кто предпочитает пропустить основы настройки уже готового бат-файла и перейти непосредственно к глубокому погружению в материал, рекомендую направить свой взор на раздел ниже "Разбор терминологии и конструкций с командами". Здесь вы найдете детализированные объяснения команд, которые раскроют перед вами всю мощь и гибкость бат-файлов.


Что такое Бат-файлы, или пакетные файлы? 

Бат-файлы (или пакетные файлы) в Windows используются для автоматизации выполнения задач в командной строке. Пакетные файлы (.bat) — настоящие волшебные палочки в мире Windows, способные автоматизировать практически любую задачу, от самой простой до чрезвычайно сложной. Представьте себе, что вы можете дать вашему компьютеру серию команд, и он выполнит их все одним щелчком мыши. Это и есть суть бат-файлов. Они могут запускать программы, управлять файлами, взаимодействовать с сетевыми устройствами и даже управлять сложными серверными операциями. Всё это делает их незаменимым инструментом для администраторов систем и энтузиастов.

 

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

Бат файл который будет разобран в данной теме:

Please Log in or Register to see this: Spoiler



Лёгкий разбор бат-файла для запуска сервера DayZ:

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

 

Please Log in or Register to see this: Code


@echo off гарантирует, что команды не будут отображаться в консоли, делая вывод чистым.
TITLE Статус сервера устанавливает название окна консоли, помогая организовать процессы.
COLOR 0D изменяет цвет фона и текста окна консоли для улучшения читаемости.

Настройка переменных
Переменные задают ключевые пути, которые используются в бат-файле:

Please Log in or Register to see this: Code


DAYZ_SA_SERVER_LOCATION указывает местоположение сервера DayZ на вашем компьютере.
BEC_LOCATION определяет путь к BattlEye Extended Controls (BEC), используя предыдущую переменную для упрощения.
 

Определение модов
Моды расширяют возможности сервера, и их пути также задаются через переменные:

Please Log in or Register to see this: Code

SERVER_MODS содержит список модов, необходимых для работы сервера. Эти моды могут включать инструменты для администрирования или специфические функции.
MODS перечисляет игровые моды, которые будут загружены на сервере, обогащая игровой процесс новым контентом и возможностями.
 

Запуск сервера

Основная команда запускает сервер DayZ с заданными параметрами:

Please Log in or Register to see this: Code


echo Запускаю сервер DayZ... выводит уведомление о начале процесса запуска.
pushd и popd временно меняют текущую директорию на ту, где расположен сервер, для выполнения команды запуска.

start DayZServer_x64.exe инициирует запуск сервера с рядом параметров:
-config=serverDZ.cfg указывает на файл конфигурации сервера.
-port=2302 задает порт для подключения клиентов.
-cpuCount=6 ограничивает сервер использованием 6 ядер процессора для оптимизации производительности.
-profiles=profiles определяет директорию для профилей и логов сервера.
-dologs, -adminlog, -netlog включают различные виды логирования для отслеживания событий сервера.
-freezecheck активирует проверку на зависание сервера.
-servermod и -mod загружают указанные серверные и игровые моды.
-BEpath задает путь к BattlEye.

 

Управление BEC

Please Log in or Register to see this: Code


Задержка timeout дает серверу время на запуск перед инициализацией BEC.
Цикл проверяет запущен ли BEC и запускает его, если необходимо, с конфигурацией Config.cfg.

 


Разбор терминологии и конструкций с командами:

Надевай скафандр, погружаемся.

 

TITLE

Please Log in or Register to see this: Code

TITLE Статус сервера
Устанавливает заголовок окна командной строки. Это помогает легко идентифицировать окно среди других, особенно когда открыто много окон командной строки.

 

COLOR

Please Log in or Register to see this: Code


Изменяет цвет фона и текста консоли. 0D — это код цвета, где 0 обозначает черный фон, а D — светло-пурпурный текст. Это улучшает читаемость и визуальное восприятие.

 

set

Please Log in or Register to see this: Code


Определяет переменную с указанным значением. В данном случае, задается путь к установленному серверу DayZ, что позволяет легко ссылаться на этот путь в дальнейшем коде.


pushd и popd

Please Log in or Register to see this: Code


pushd временно меняет текущую директорию на указанную, позволяя выполнять команды в этой директории.

popd возвращает в исходную директорию. Это полезно для организации кода и выполнения команд в нужном контексте без необходимости постоянно указывать полные пути.

 

start

Please Log in or Register to see this: Code


Запускает программу или команду в новом окне командной строки. Здесь используется для запуска сервера DayZ с набором параметров, таких как конфигурация, порт, количество ядер процессора и другие.

 

timeout

Please Log in or Register to see this: Code


Осуществляет задержку на указанное количество секунд (15 в данном случае), прежде чем продолжить выполнение скрипта. > NUL предотвращает вывод отсчета времени на экран.

 

:label и goto

Please Log in or Register to see this: Code


:loop определяет метку (точку в скрипте), к которой можно вернуться с помощью команды goto. Это создает цикл, позволяя повторять определенный участок кода до достижения нужного условия.

 

if и else

Please Log in or Register to see this: Code


Проверяет условие и выполняет команды внутри скобок, если условие истинно (if), и другие команды, если условие ложно (else). %ERRORLEVEL% содержит код возврата последней выполненной программы, где 0 обычно означает успешное выполнение.

 

tasklist и find

Please Log in or Register to see this: Code


tasklist выводит список запущенных процессов, фильтруя их по имени (IMAGENAME eq Bec.exe). find ищет строку "Bec.exe" в выводе tasklist. Комбинация этих команд используется для проверки, запущен ли уже процесс BEC.

 

Вам всё ещё кажется что пакетные файла (.bat) не на что не годятся?

Вот идеи, которые возможно реализовать с помощью пакетных файлов:

 

Резервное копирование данных сервера

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

 

Обновление Модов и Серверного ПО

Автоматизированный процесс обновления модов и программного обеспечения сервера. Бат-файл может загружать последние версии модов с предварительно заданных URL-адресов и обновлять серверное ПО, минимизируя время простоя.

 

Мониторинг состояния сервера

Скрипт для мониторинга состояния сервера, проверяя, активен ли процесс сервера, и перезапуская его в случае сбоя. 

 

Управление логами сервера

Используйте бат-файлы для автоматизации управления лог-файлами сервера, включая их архивацию, удаление старых или ненужных логов и экспорт важных логов для дальнейшего анализа. Это помогает поддерживать порядок на сервере и облегчает анализ проблем.


Батя бат-файлов

 

Есть возможность развернуть целую сеть бат-файлов и их взаимодействие через родительский бат-файл представляет собой мощный способ организации и автоматизации задач, особенно когда дело касается управления серверами, опять же к примеру как сервер DayZ. Это позволяет создать иерархическую структуру задач, где один главный бат-файл управляет запуском других бат-файлов по определенным условиям или в заданные временные промежутки. Вот как это может работать:

 

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

 

Примеры использования:

 

Запуск сервера: Утром родительский бат-файл автоматически запускает сервер DayZ.
Резервное копирование: В полдень запускает другой бат-файл для создания резервных копий важных данных сервера.
Обновление модов: Вечером инициирует процесс обновления модов, запуская соответствующий бат-файл.
Перезапуск сервера: В указанные временные промежутки осуществляет перезапуск сервера для поддержания его производительности на высоком уровне.
 

 

В моей следующей статье мы возьмемся за создание пакетного файла, целью которого будет резервное копирование лог-файлов и их последующая архивация. Мы возьмем за основу один из самых распространенных и эффективных пакетных файлов, используемых для запуска и мониторинга серверов DayZ, адаптируя его под новые задачи. Это будет практическое руководство, которое покажет, как максимально использовать потенциал скриптов для упрощения управления вашим сервером.

Edited by Sk1nG
  • Like 1
Link to comment
Share on other sites

  • 2 months later...

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
 Share

×
×
  • Create New...