Ах, Minecraft — этот бескрайний мир блоков и приключений, где каждый день ты либо строишь шедевр, либо случайно взрываешь всё динамитом. Но что делать, если твой виртуальный замок вдруг решит исчезнуть?
Правильно, делать бэкапы! Сегодня я расскажу вам, как настроить автоматическое резервное копирование мира Minecraft с помощью cron и rsync — и поверьте, это не так страшно, как кажется.
Представьте себе: вы идёте спать спокойно, а ваш сервер сам заботится о сохранности ваших кирпичиков и кирок. Как говорится, лучше один раз настроить скрипт, чем потом рыдать над обломками.
Начнём с создания папки для бэкапов — это как построить сейф для своих сокровищ.
Команда sudo mkdir -p /backup/minecraft/worlds создаст нужные каталоги. Если бы мой кот умел пользоваться Linux, он бы уже сделал это за меня… но увы! Далее важно назначить владельца папки — ведь нельзя же доверять свои драгоценные миры кому попало. Здесь замените “minecraft” на пользователя вашего сервера.
Помните: хороший админ всегда знает пароль от своего сервера лучше, чем кошка знает все клавиши на клавиатуре.
Теперь переходим к самому веселью — пишем скрипт для бэкапа. Вставляем туда волшебный код: сначала сервер говорит всем игрокам «Резервное копирование…», потом аккуратно выключается (чтобы никто не ломал пиксели в процессе), затем создаётся архив мира с временной меткой (чтобы знать точно когда была сделана последняя спасательная операция).
После чего сервер запускается заново и сообщает в чат: «Бэкап завершён». Это почти как заботливый бариста в кофейне: «Ваш латте готов!» Только вместо кофе — файлы.
Кстати, кто не знает анекдот про программиста и резервное копирование? Вот он: «Почему программисты любят делать бэкапы? Потому что если что-то пойдёт не так — всегда можно сказать: „Это не баг, это фича!“» Так вот, после того как вы сделали скрипт исполняемым (chmod +x), можно чуть расслабиться.
Но тут появляется новый герой — ротация бэкапов.
Ведь хранить все старые копии — всё равно что собирать коллекцию пустых бутылок из-под лимонада: место быстро заканчивается и мама ругается. Скрипт удаления старых файлов поможет избавиться от хлама старше семи дней.
Представьте себе уборку в шкафу у геймера: “Удаляем все файлы старше недели… Ой, а это же моя первая карта! Ну ладно.”
Если хочется быть ещё круче и экономить место и время (а кто не хочет?), используйте rsync с инкрементальными бэкапами — он сохраняет только изменения с последнего раза. Это как если бы вы фотографировали свой дом каждый день и записывали только то, что изменилось: “Сегодня добавили цветы возле двери”. Быстро и эффективно!
Ну а чтобы все эти чудеса работали сами по себе — подключаем cron.
Настраиваем расписание так, чтобы полный бэкап делался ночью в 3 часа (потому что настоящий герой играет днём), инкрементальный каждые 6 часов (чтобы ничего не потерялось), а ротация запускалась сразу после полного бэкапа — чисто для порядка.
И конечно же, настоящий джентльмен всегда получает уведомления по email о результатах операции! Для этого устанавливаем mailutils и отправляем сообщение админу со словами поддержки типа «Бэкап мира Minecraft завершён успешно». Ведь ничего так не радует сердце геймера-админа, как письмо с хорошими новостями посреди ночи!
Если вы хотите сохранить свои миры на другом сервере (ну или просто показать друзьям свою аккуратность), используйте rsync через SSH без пароля — настройка ключей избавит вас от вечного ввода паролей и позволит спать спокойно.