Введение
У Pterodactyl есть встроенный функционал создания резервных копий, который вполне неплохо справляется со своей задачей. Но резервные копии можно сделать размером меньше, настроив специальный файл -.pteroignore
. Этот файл позволяет исключить часть файлов из резервной копии, позволяя Вам не помещать в резервную копию - ненужные файлы (карты и модели, например).Включение резервных копий
При создании сервера, можно отключить ему резервные копии. Для начала убедитесь, что в админке серверу разрешено иметь резервные копии:Если в поле Backup Limit введено число, отличное от нуля, то всё хорошо - бэкапы должны быть доступны:
Чтобы убедиться в работоспособности этого функционала - можете просто зайти на вкладку и попробовать создать бэкап. Панель подумает и, спустя какое-то время, бэкап будет создан и доступен к скачиванию, и даже восстановлению из него. Но он будет включать все файлы, включая стандартные серверные, которые мы и так можем скачать через SteamCMD.
И здесь на сцену выходит
.pteroignore
..pteroignore
.pteroignore
- файл, позволяющий исключать целые папки и файлы из бэкапа. Так же он позволяет наоборот, исключив целую директорию и/или перечень файлов/папок - включить обратно часть папки в бэкап.Его синтаксис чем-то напоминает
.gitignore
, и действуют на него те же правила, что и на .gitignore
при использовании в связке с Гитом:- Комментарии начинаются с знака решётки (
#
) - Пути в файле пишутся относительно расположения файла
- Для исключения целой директории, путь к ней обязательно должен заканчиваться на слэш, иначе путь трактуется как "файл"
- Возможно использовать маску (
tf/*.vpk
илиtf/maps/vsh_*
). - Для исключения папки/файла, путь должен начинаться с восклицательного знака (
!tf/cfg/server.cfg
) - Важно! Порядок записей в файле играет роль!
-
Код:
csgo/materials/ csgo/materials/models/player/custom_player/econ/head/ctm_diver/ctm_diver_fbi_v2_head_variantd_color.vt !csgo/materials/decals/ !csgo/materials/models/ !csgo/materials/paintball/
.../ctm_diver_fbi_v2_head_variantd_color.vt
всё равно попадёт в архив.
Чтобы его не включало, нужно строчку с ним поместить под той, которая наиболее всего исключает нужную папку из игнора (т.е. подcsgo/materials/models/
-
Код:
csgo/materials/ !csgo/materials/decals/ !csgo/materials/models/ csgo/materials/models/player/custom_player/econ/head/ctm_diver/ctm_diver_fbi_v2_head_variantd_color.vt !csgo/materials/paintball/
.pteroignore
в корне, и начинаем составлять:- В бэкапе сервера определенно не нужны стандартные папки движка:
bin
,hl2
,platform
и другие - В папке мода (
tf
/cstrike
/csgo
) исключаем из копирования так же bin, все *.vpk-файлы и остальные не изменяемые Вами, как администратором, папки. Так же можно исключить модели/материалы/карты. - Можно исключить временные файлы/папки плагинов и движка, такие как логи и аудио-кэши (
*.cache
). - Если есть инвалид-клиенты (у которых не получается скачать файлы с FastDL), и отдача файлов самим сервером включена, можете так же исключить из резервной копии сжатые версии файлов самим движком. У них расширение
.ztmp
.
Код:
# Папки в корне
.steam/
bin/
hl2/
platform/
Steam/
steamapps/
steamcmd/
core
debug.log
srcds_*
steam_appid.txt
thirdpartylegalnotices.txt
# Файлы в папке "игры"
tf/*.vpk
tf/*.cache
tf/*.txt
tf/steam.inf
tf/bin/
tf/cfg/
tf/custom/
tf/models/
tf/resource/
tf/workshop/
# Файлы с клиентов
tf/download/
tf/downloadlists/
# Итемсхемы
tf/scripts/
# Демки
tf/replay/
tf/addons/sourcemod/data/demos/
# Исключения в основной папке конфигов
!tf/cfg/sourcemod/
!tf/cfg/server.cfg
# Временные файлы - мусор
tf/addons/sourcemod/data/ad_chunk.bin
tf/addons/sourcemod/data/admin_cache_dump.txt
# Логи и прочий временный шлак - в мусорку
*.log
*.ztmp
*.tmp
# Карты - нужны, но не все; за исключением стандартных
tf/maps/
!tf/maps/vsh_*
!tf/maps/arena_*
# Так же, исключаем сам .pteroignore
.pteroignore
Бэкапы по расписанию
В Pterodactyl есть встроенный планировщик, который, помимо простого запуска/перезапуска/остановки сервера наравне с выполнением команд, умеет делать и резервные копии. Самый оптимальный вариант - создание бэкапа, когда сервер выключен, когда ни один файл не используется им.
Если у Вас есть задача на выполнение перезапуска сервера ночью - можно просто её привести к следующему виду:
Неудачное создание бэкапа по тем или иным причинам не должно мешать запуску сервера, потому обязательно пометьте её "разрешённой к неудачному завершению".
И учтите, что операция Create backup лишь создаёт задачу на демоне. Т.е. сразу после создания задачи, бэкап может ещё не создаться, а сервер уже пойдёт вставать. Потому добавьте ожидание после начала создания бэкапа. Продолжительность - на своё усмотрение. У меня бэкапы создаются за 50 секунд (снимается полная копия: вся папка
Если у Вас есть задача на выполнение перезапуска сервера ночью - можно просто её привести к следующему виду:
Неудачное создание бэкапа по тем или иным причинам не должно мешать запуску сервера, потому обязательно пометьте её "разрешённой к неудачному завершению".
И учтите, что операция Create backup лишь создаёт задачу на демоне. Т.е. сразу после создания задачи, бэкап может ещё не создаться, а сервер уже пойдёт вставать. Потому добавьте ожидание после начала создания бэкапа. Продолжительность - на своё усмотрение. У меня бэкапы создаются за 50 секунд (снимается полная копия: вся папка
addons
, используемые карты, модели, материалы и звуки), но для запаса я запускаю сервер только через 3 минуты.