Стратегия резервного копирования игрового сервера сводится к четырём решениям: в каких папках лежат мир и настройки, как заставить игру записать чистую копию, прежде чем вы её снимете, сколько копий хранить и как долго, и где лежит хотя бы одна из них, если не на самом сервере. Для большинства игр мир - это одна-две папки, разумное расписание - ежедневный backup с хранением неделю плюс заблокированная копия перед каждым обновлением, а внешняя копия - это архив, который вы раз в неделю скачиваете сами. Всё остальное в этой статье - то же самое, но по каждой игре отдельно, потому что папка, важная в Minecraft, - не та, что важна в Palworld, а backup не той папки - самый частый способ получить пустую резервную копию.
Общая теория - что делает копию восстановимой, идея 3-2-1, целостность - описана в статье backup, которые действительно восстанавливаются. Здесь прикладная версия для игровых серверов: реальные пути, реальные команды сохранения и политика хранения, которая соответствует тому, как играют в каждый тип игр.
Три вида данных на любом игровом сервере#
Прежде чем решать, что копировать, полезно разложить файлы игрового сервера на три группы, потому что обращаться с ними нужно совершенно по-разному.
- Состояние - мир, прогресс игроков, базы, балансы экономики, база прав. Оно меняется каждую минуту работы сервера, его нельзя заново откуда-то скачать, и это единственное, потеря чего необратима. Оно должно быть в каждом backup.
- Конфигурация -
server.properties,serverDZ.cfg,PalWorldSettings.ini, конфиги плагинов, списки админов и банов. Небольшая, меняется редко, и восстанавливать её мучительно, потому что никто не помнит сорок значений, которые подкручивал. Копируйте её вместе с состоянием - это ничего не стоит. - Воспроизводимые файлы - бинарники игры, Steam runtime, загрузки из Workshop, Java runtime. Это гигабайты, и каждый байт можно скачать заново через SteamCMD или переустановку в панели. Если их не включать, backup остаются маленькими и быстрыми.
Ловушка - на границе между первой и третьей группами. Моды в теории воспроизводимы, но только в той версии, на которой вы работали, а автор мода может удалить старый релиз. Если сервер зависит от мода конкретной версии, файл мода должен попасть в backup, даже если его в принципе можно скачать снова. То же касается кастомной карты: она воспроизводима, пока её автор не исчезнет.
Что копировать в каждой игре#
Вот папки с состоянием и конфигурацией для игр, которые хостят чаще всего. Пути указаны относительно корня сервера, если не начинаются с ~, и некоторые из них меняются, если при запуске передан аргумент каталога сохранений, поэтому прежде чем доверять таблице, проверьте строку запуска на своём сервере.
| Игра | Мир и состояние | Конфигурация, которую стоит хранить |
|---|---|---|
| Minecraft (Paper) | world, world_nether, world_the_end | server.properties, plugins/, ops.json, whitelist.json |
| Valheim | worlds_local/<World>.db и .fwl | adminlist.txt, bannedlist.txt, permittedlist.txt |
| Palworld | Pal/Saved/SaveGames/0/<id>/ | Pal/Saved/Config/LinuxServer/PalWorldSettings.ini |
| Project Zomboid | Zomboid/Saves/Multiplayer/<name>/, Zomboid/db/<name>.db | Zomboid/Server/<name>.ini, <name>_SandboxVars.lua |
| 7 Days to Die | папка сохранения вашего мира и игры | serverconfig.xml, serveradmin.xml |
| Terraria | файл .wld и его .twld (tModLoader) | serverconfig.txt, tshock/ |
| Factorio | saves/*.zip | data/server-settings.json, server-adminlist.json, mods/ |
| DayZ | mpmissions/<mission>/storage_1/ | serverDZ.cfg, файлы db/ миссии |
| Unturned | Servers/<id>/Level/, Servers/<id>/Players/ | Commands.dat, Config.json |
| Don't Starve Together | <Cluster>/Master/save/, <Cluster>/Caves/save/ | cluster.ini, server.ini каждого шарда |
| Garry's Mod | garrysmod/sv.db, garrysmod/data/ | garrysmod/cfg/, addons/ |
| Counter-Strike 2 | нет - постоянного мира нет | game/csgo/cfg/, game/csgo/addons/ |
Некоторые строки требуют пояснений.
Minecraft на Paper и Spigot хранит три измерения в трёх папках. Ванилла держит Незер и Энд внутри основной папки world как DIM-1 и DIM1, поэтому скрипт, написанный для ваниллы, пропускает две трети мира Paper. Данные плагинов лежат в plugins/<Plugin>/, и часть из них - тоже состояние: приваты, балансы экономики, группы LuckPerms, если они хранятся в стандартном файле H2. Команды сохранения и откат на уровне регионов подробно разобраны в статье backup и восстановление мира Minecraft.
Project Zomboid - игра, в которой ошибаются чаще всего. Карта лежит в Saves/Multiplayer/<servername>, а аккаунты и пароли игроков - в db/<servername>.db. Восстановите только карту - и всем игрокам придётся регистрироваться заново; восстановите только базу - и они зайдут в мир, который их не знает.
7 Days to Die хранит сохранения в папке пользовательских данных, которая в Linux по умолчанию находится в ~/.local/share/7DaysToDie/Saves/, если UserDataFolder или SaveGameFolder в serverconfig.xml не указывают на другое место. У мира со случайной генерацией есть ещё сгенерированная карта в GeneratedWorlds/ - по меркам конфигурации она небольшая, но генерировалась десять минут или дольше, и без неё сохранение бесполезно.
DayZ пишет persistence в папку миссии. В storage_1 лежат объекты мира, игроки и транспорт; число - это id инстанса, заданный в serverDZ.cfg. Файлы экономики рядом (types.xml, events.xml) - это конфигурация, и именно их вы правите, так что меняются они чаще, чем кажется.
Counter-Strike 2 и другие матчевые шутеры не могут потерять ничего, кроме конфигурации. Их «backup» - это копия cfg/ и папок плагинов, лучше всего в git-репозитории, а ежедневный снимок неизменной папки - просто занятое место на диске.
Целостная копия: сначала сохранить, потом копировать#
Большинство игр держат мир в памяти и пишут его на диск по таймеру. Копия файлов, снятая в тот момент, когда игра на середине записи, даёт мир, который выглядит целым и не загружается. Решение одинаково для всех игр: попросите сервер записать всё на диск, дождитесь окончания и только потом снимайте копию.
| Игра | Команда сохранения | Примечания |
|---|---|---|
| Minecraft | save-off, save-all flush, затем save-on | save-off отключает автосохранение на время копирования |
| Valheim | save (админ, внутриигровая консоль) | В ванилле нет команды для консоли сервера; корректная остановка тоже сохраняет |
| Palworld | Save через RCON или как админ-команда | Для админ-команд в игре сначала нужен /AdminPassword |
| Project Zomboid | save в консоли сервера | |
| 7 Days to Die | saveworld (или sa) | Работает из консоли и через telnet |
| Factorio | /server-save | Записывает текущий файл сохранения |
| Terraria | save в консоли сервера | |
| Unturned | save в консоли сервера | |
| DayZ | нет | Persistence пишется при выключении и по таймеру |
В панели для этого лучше всего подходит вкладка Schedules. Расписания RE:NODE выполняют задачи по порядку с задержками - консольная команда, backup, действие питания, - поэтому последовательность такая: команда сохранения, пауза от тридцати до шестидесяти секунд, чтобы большой мир успел записаться, затем задача backup. Строки cron и полная ночная последовательность - в статье запланированные задачи, которые стоит завести.
Task 1 command say Backup in 1 minute - expect a short pauseTask 2 command save-off (delay 60 s)Task 3 command save-all flush (delay 5 s)Task 4 backup (delay 45 s)Task 5 command save-on (delay 120 s)Для игры без команды сохранения безопасных вариантов два: остановка, backup и запуск - или согласие с тем, что копия будет на момент последнего автосохранения. DayZ относится ко второй группе: копия storage_1, снятая через несколько минут после планового сохранения persistence, на практике вполне годится. Остановить сервер перед backup никогда не ошибка - это просто неудобно, поэтому обычно это делают внутри окна ночного рестарта.
Сколько backup хранить и как долго#
Срок хранения зависит от того, как играют в игру, а не от того, сколько свободного места на диске. Три схемы покрывают почти любой сервер.
Постоянные миры
Серверы выживания и песочницы - Minecraft SMP, Valheim, Palworld, Project Zomboid, 7 Days to Die без вайпов, Factorio, Satisfactory - накапливают ценность каждый день и никогда не сбрасываются. Разумная ротация такая:
- Ежедневные backup с хранением семь дней. Это покрывает гриф, замеченный через несколько дней, и повреждённый чанк, о котором никто не знал, пока туда кто-нибудь не зашёл.
- Еженедельные backup с хранением четыре недели. Слотов backup в панели на такое редко хватает - для этого и нужно скачивание (следующий раздел).
- Заблокированные backup перед каждым обновлением игры, каждым изменением модов и каждой операцией редактирования мира, которые хранятся, пока вы не убедитесь, что изменение сработало, - обычно неделю.
Серверы с вайп-циклом
Rust, серверы DayZ, которые вайпаются по циклу, и всё, что живёт сезонами. Backup старше последнего вайпа для живого сервера ничего не стоит. Храните ежедневные копии в пределах текущего цикла и одну архивную копию финального состояния перед каждым вайпом, если хотите потом его показать или разрешить спор. Самая интересная конфигурация - настройки плагинов, таблицы лута, экономика - переживает вайп, и именно её важнее всего версионировать.
Матчевые серверы
Counter-Strike 2, Team Fortress 2, Insurgency: Sandstorm и подобные. Держите конфигурацию в системе контроля версий и копируйте базы данных плагинов (sourcemod-local.sq3 у SourceMod, если вы используете SQLite для админов или статистики). Ежедневный полный backup - это потраченные впустую слоты.
На RE:NODE в каждый игровой тариф входят два слота backup, и backup можно заблокировать, чтобы ротация его никогда не удаляла. Двух слотов хватает на «прошлую ночь» и «до обновления» - это та пара, которая важнее всего; всё, что дольше, живёт в ваших скачанных копиях.
Внешняя копия и почему панели недостаточно#
Backup в панели RE:NODE хранятся не на той машине, которую защищают, и это закрывает вопрос отказавшего диска. Но не все вопросы:
- Удаление сервера удаляет его backup, включая заблокированные. Отменённый тариф, неоплаченный счёт, доживший до конца срока, или ошибочное удаление уносят копии вместе с сервером.
- Слотов ограниченное число. Ежедневное расписание перезаписывает копию прошлой недели, а она как раз и нужна, если проблема началась шесть дней назад.
- Учётные данные - единая точка отказа. Любой, у кого есть полный доступ к аккаунту панели, может удалить и сервер, и все его backup. Это повод включить двухфакторную аутентификацию в аккаунте панели и завести субпользователей с минимальными правами, а также повод держать одну копию там, куда не дотягивается ни один вход в панель.
Практичный ответ для большинства небольших серверов - еженедельное скачивание. Backup можно скачать из панели архивом; положите его на свою машину или в хранилище с версионированием, назвав по дате. Для крупного сообщества это стоит автоматизировать: задача по расписанию на домашней машине или дешёвом VDS, которая забирает папку мира по SFTP.
# Weekly pull of a Valheim world over SFTP, run from your own machine$ sftp -P 2022 user.abc123@panel.example:/worlds_local/Midgard.* \ ~/backups/valheim/$(date +%F)/Точные хост, порт и имя пользователя указаны в данных SFTP сервера в панели; где их найти, описано в статье SFTP и файловый менеджер. По возможности забирайте копию, а не живой файл: скачанный архив backup целостен, а живой .db посреди сохранения - нет.
Размер, частота и цена#
Размер backup решает, насколько расписание практично. Примерные размеры долгоживущих миров без бинарников:
| Игра | Типичный размер мира | Что его увеличивает |
|---|---|---|
| Valheim | 20-150 MB | Исследованная область, элементы построек, терраформинг |
| Minecraft SMP | 1-20 GB | Исследованные чанки; предгенерация умножает размер |
| Palworld | 50-500 MB | Базы, палы, число игроков |
| Project Zomboid | 1-10 GB | Посещённые клетки; сохраняется каждый посещённый чанк |
| 7 Days to Die | 200 MB-3 GB | Размер карты и постройки игроков |
| Factorio | 5-200 MB | Размер фабрики; сжатый zip |
| Terraria | 5-50 MB | Один .wld на мир |
| DayZ | 50-500 MB | Постоянные объекты, палатки и базы |
Отсюда два вывода. Маленькие миры (Valheim, Terraria, Factorio) можно копировать каждый час, и никто этого не заметит. Большие (мир Minecraft с предгенерированной границей в 10 000 блоков, оживлённая карта Zomboid) архивируются так долго, что ежечасный backup жесток и к диску, и к игре, а правильный ритм - раз в день в тихий час. Здесь особенно важно исключать ненужное: backup Minecraft с кешем тайлов Dynmap или BlueMap может быть в пять раз больше мира, который эти тайлы показывают. Дисковая сторона вопроса, включая запас места, нужный backup во время сборки, - в статье сколько места на диске нужно игровому серверу.
Чтобы исключить папки в панели на базе Pterodactyl, используется файл исключений .pteroignore в корне сервера, который пишется как .gitignore (это функция исходного Pterodactyl, так что если не уверены, что она поддерживается, спросите хостера):
# rebuilt on demand, no need to back them upplugins/dynmap/web/tiles/bluemap/web/maps/logs/crash-reports/cache/*.log.gzПроверьте это один раз: сделайте backup и сравните его размер с размерами папок в файловом менеджере. Правило исключения, случайно совпавшее с папкой мира, - тихая катастрофа.
Восстановление: порядок, который не сделает хуже#
Когда этот день наступает, больше всего вреда происходит именно при восстановлении, потому что люди действуют быстро на сервере, который всё ещё работает.
- Остановите сервер. Восстановление поверх работающего мира будет перезаписано при следующем автосохранении.
- Сделайте backup сломанного состояния и заблокируйте его. Что-то из него может понадобиться позже - постройка, сделанная после последнего хорошего backup, или доказательства того, кто нанёс ущерб.
- Восстановите backup целиком или извлеките только папку мира, если с тех пор вы меняли конфигурацию и хотите её сохранить. На RE:NODE панель восстанавливает backup одной кнопкой; для частичного восстановления скачайте архив и загрузите нужную папку через файловый менеджер, который распаковывает архивы на месте.
- Проверьте, что версии совпадают. Мир из версии до обновления игры почти всегда загружается в новой версии; мир из версии после обновления редко загружается в старой. Если вы откатываете саму игру, читайте статью фиксация версий и откаты.
- Запустите сервер и прочитайте лог - найдите строку о том, какой мир загружен. Сервер, который не нашёл мир, обычно генерирует новый с тем же именем и выглядит совершенно здоровым.
- Сообщите игрокам, на какое время восстановлен мир, чтобы они знали, что потеряли.
Потом, в какой-нибудь спокойный момент, отрепетируйте это. Проверка восстановления до того, как оно понадобится - это получасовая тренировка, и именно так вы узнаете, что папки db в backup никогда не было.
Типичные пробелы по играм#
Backup, которые подводят в нужный день, обычно подводят по одной из этих причин:
- Мир лежал в другом месте. Флаг каталога сохранений при запуске (
-savedirв Valheim,UserDataFolderв 7 Days to Die,-cachedirв Project Zomboid) увёл мир из папки, которую копировали. - База данных была не файлом. Плагинам и фреймворкам, которые хранят состояние в базе данных, - фреймворкам FiveM через oxmysql, плагинам Minecraft, настроенным на внешнюю базу, - нужен ещё и дамп этой базы. В панели слот базы данных отделён от файлового backup; как снять дамп, описано в статье backup и восстановление баз данных.
- Изменилось имя сервера. Zomboid и Don't Starve Together привязывают папки к имени. Переименуйте сервер - и он начнёт писать в новую пустую папку, а расписание backup продолжит архивировать старую.
- Backup выполнялся во время сохранения. В расписании нет команды сохранения или задержка слишком короткая для большого мира.
- Обновился контент Workshop. Мир ссылается на версию мода, которой в Workshop больше нет. Для всего, что нельзя потерять, храните копию файлов модов вместе с сохранением.
- Встроенные backup приняли за настоящие.
-backupsв Valheim, плагины backup для Minecraft и собственная папка backup в 7 Days to Die лежат на том же диске, что и мир. Они защищают от повреждённого сохранения, но не от удалённого сервера.
FAQ#
Как часто делать backup игрового сервера?
Ежедневно для постоянного мира, в час, когда никто не играет, плюс ручной backup перед каждым обновлением или изменением модов. Ежечасный backup оправдан только для маленьких миров, где потеря часа вечерней игры действительно расстроит людей, и только если backup занимает секунды.
Нужно ли останавливать сервер для backup?
Нет, если в игре есть команда сохранения. Выполните её, дождитесь окончания записи, потом копируйте. Для игр без такой команды остановка - единственный способ гарантировать целостную копию, поэтому многие встраивают backup в ночной рестарт.
Стоит ли копировать сами файлы игры?
Обычно нет. Они возвращаются переустановкой или обновлением через SteamCMD. Исключение - когда вы зависите от точной версии, например модовый сервер, закреплённый на старой сборке: тогда храните одну копию рабочей установки отдельно от ежедневных backup мира.
Чем backup в панели отличается от скачанной копии?
Backup в панели живёт вместе с вашим аккаунтом и исчезает, если сервер удалён. Скачанная копия хранится у вас, вне досягаемости панели. Нужны обе: backup в панели для быстрого восстановления, скачанная копия - на тот день, когда копии в панели не станет.
Почему восстановленный мир выглядит совсем новым?
Сервер не нашёл мир под тем именем, которое ему велели загрузить, и сгенерировал новый. Сверьте имя мира или сервера в настройках запуска с восстановленной папкой или файлом, включая заглавные буквы, и перезапустите сервер.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.