Как очистить кэш сервера

Со временем на Minecraft-сервере накапливаются временные файлы, логи, устаревшие данные плагинов и системный мусор. Это может замедлить работу сервера, увеличить время загрузки и потребление оперативной памяти. В этой инструкции мы пошагово разберём, как безопасно очистить кэш сервера на хостинге proxify.cloud. Все действия выполняются на выделенном сервере с Ubuntu через SSH. Прежде чем начать, убедитесь, что у вас есть доступ к панели управления proxify.cloud (Proxmox) – вы сможете создать снапшот сервера и в случае проблем быстро восстановить его.

Подготовка к очистке

Перед удалением любых файлов обязательно выполните резервное копирование. На proxify.cloud это можно сделать через панель Proxmox, создав снапшот виртуальной машины, либо через SSH с помощью утилит tar или rsync.

1. Оцените текущее состояние сервера

Подключитесь к серверу по SSH, выполните следующие команды, чтобы увидеть нагрузку, использование памяти и диска:

top -bn1 | head -5
free -h
df -h /home

Если вы используете tmux или screen, откройте отдельное окно для команд.

2. Остановите Minecraft-сервер

Чтобы избежать повреждения файлов в процессе очистки, сервер должен быть остановлен. Выполните (в зависимости от способа запуска):

# Если сервер работает как systemd-сервис (например, minecraft.service)
sudo systemctl stop minecraft
# Если запущен в screen/tmux
screen -S minecraft -X stuff "stop$(printf '\r')"
# Дождитесь полного завершения (проверьте командой ps aux | grep java)

В панели proxify.cloud вы также можете принудительно выключить ВМ через кнопку Stop, но это крайняя мера.

3. Создайте резервную копию мира и конфигов

Создайте архив папки сервера (обычно /home/minecraft/server или /opt/minecraft):

cd /home/minecraft
tar -czf backup-server-$(date +%F).tar.gz server/

Храните архив в надёжном месте (можно скачать через панель File Manager или загрузить на удалённое хранилище).

Очистка кэша Minecraft сервера

Теперь, когда сервер остановлен и создана резервная копия, можно приступать к очистке.

1. Удаление кэша плагинов и временных файлов

Большинство плагинов создают папку cache внутри своего каталога. Выполните:

# Замените /path/to/server на реальный путь к директории сервера
cd /path/to/server

# Удаляем стандартный кэш сервера (если есть)
rm -rf cache

# Удаляем кэш отдельных плагинов (пример):
rm -rf plugins/Essentials/userdata/cache
rm -rf plugins/WorldGuard/cache
rm -rf plugins/CoreProtect/cache

# Для Dynmap очистите его кэш карт, если хотите перестроить:
rm -rf plugins/dynmap/web/tiles/*

Многие плагины сами регенерируют кэш при следующем запуске. Проверьте каждый плагин – некоторые могут требовать очистки только через их команды.

2. Очистка логов

Логи занимают много места и не влияют на производительность сервера напрямую, но их удаление освобождает дисковое пространство.

rm -rf logs/*
rm -rf crash-reports/*
rm -rf plugins/*/logs/*

Важно: Не очищайте папки, которые могут содержать важные данные (например, плагин командных блоков может хранить там скрипты). Ориентируйтесь на папки с именем logs или crash-reports.

3. Очистка старых резервных копий мира, сделанных плагинами

Некоторые плагины (например, AutoSaveWorld, Backup) создают свои архивы. Проверьте папки:

cd /path/to/server
du -sh backups/
du -sh plugins/*/backups/

Если они велики и вам не нужны эти копии, удалите:

rm -rf backups/*

4. Удаление файлов обновлений плагинов

В папках плагинов иногда остаются файлы .old, .bak или обновлённые jar-файлы. Удалите их вручную или командой:

find . -name "*.old" -o -name "*.bak" -delete

Очистка системного кэша Ubuntu

Помимо кэша самого Minecraft, на сервере накапливается системный мусор: кэш пакетов, временные файлы, неиспользуемая память и swap.

1. Очистка кэша APT

sudo apt clean          # удаляет загруженные .deb пакеты
sudo apt autoclean     # удаляет старые версии пакетов
sudo apt autoremove    # удаляет ненужные зависимости

2. Очистка системных временных файлов

sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*

3. Очистка кэша памяти (drop_caches)

После долгой работы сервера файловый кэш может занимать много ОЗУ. Очистка безвредна, но может временно замедлить чтение с диска.

sudo sync
echo 3 | sudo tee /proc/sys/vm/drop_caches

Эта команда сбросит буферы и кэш файловой системы.

4. Сброс swap (если используется)

Если swap-раздел стал активно использоваться, его можно перечитать:

sudo swapoff -a && sudo swapon -a

Выполняйте только при достаточном количестве свободной ОЗУ, иначе сервер может зависнуть.

Автоматизация очистки кэша

Чтобы не выполнять рутинные операции вручную, можно настроить cron-задачу.

1. Создайте скрипт очистки

Создайте файл, например /usr/local/bin/clear-cache.sh:

#!/bin/bash
# Очистка кэша Minecraft сервера и системы

SERVER_DIR="/home/minecraft/server"
LOG_FILE="/var/log/cache-clean.log"

echo "[$(date)] Starting cache clear" >> "$LOG_FILE"

# Останавливаем Minecraft (если он запущен)
if pgrep -x java > /dev/null; then
    systemctl stop minecraft
    sleep 10
fi

# Удаляем кэш плагинов (пример)
rm -rf "$SERVER_DIR/cache"
rm -rf "$SERVER_DIR/plugins/Essentials/userdata/cache"
rm -rf "$SERVER_DIR/plugins/Dynmap/web/tiles"

# Очищаем логи (кроме сегодняшнего)
find "$SERVER_DIR/logs" -type f -mtime +7 -delete

# Системная очистка
apt clean
sync
echo 3 > /proc/sys/vm/drop_caches
swapoff -a && swapon -a

# Запускаем сервер
systemctl start minecraft

echo "[$(date)] Cache clear finished" >> "$LOG_FILE"

Не забудьте сделать скрипт исполняемым:

sudo chmod +x /usr/local/bin/clear-cache.sh

2. Добавьте задачу в crontab

Откройте crontab:

sudo crontab -e

Добавьте строчку для еженедельной очистки (например, в 3:00 каждый понедельник):

0 3 * * 1 /usr/local/bin/clear-cache.sh

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

Возможные проблемы и решения

Проблема: После очистки сервер не запускается

Причина: Удалены важные файлы плагина (например, конфигурация, которая не регенерируется).
Решение: Восстановите файлы из предыдущей резервной копии (backup-server-*.tar.gz). Если такой копии нет, переустановите плагин заново (скачайте jar, скопируйте конфиги из бекапа или настройте заново).

Проблема: Процесс очистки прервался из-за занятых файлов

Причина: Сервер не был полностью остановлен.
Решение: Проверьте, что java-процесс действительно завершён (ps aux | grep java). Используйте kill -9 PID в крайнем случае. Через панель proxify.cloud можно перезагрузить ВМ.

Проблема: После сброса drop_caches производительность сервера временно упала

Причина: Система заново читает файлы с диска в кэш.