PvP Server Kiralama & Oyun Sunucuları
0 Giriş Yap Kayıt Ol

Решение проблемы переполнения диска на Linux-сервере

Yazdır

Как устранить ошибку переполнения диска на Linux-сервере?

Руководство по поиску больших файлов, безопасной очистке логов и освобождению места на сервере.

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

Эту ошибку обычно распознают по следующим признакам:

  • Не удалось загрузить файлы на сервер
  • Отключение или ошибка службы базы данных
  • На панели появляется ошибка «Нет места на устройстве»
  • Игровой сервер отключается, поскольку не может войти в систему.
  • На сайтах возникает 500 ошибок или пустых страниц
Важный: Удаление случайных файлов в случае ошибки переполнения диска опасно. Службы могут быть повреждены, если удален не тот системный файл. Для начала необходимо определить, какая папка занимает место.

1. Проверка использования диска

Сначала проверьте, какой раздел диска на сервере заполнен.

df -h

здесь особенно Использовать% считается площадь. Если раздел составляет 90% и выше, это означает, что риск начался. Если он заполнен на 100%, службы не смогут записывать файлы.

2. Найдите папки, занимающие больше всего места

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

du -h --max-depth=1 / 2>/dev/null | sort -h

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

  • /вар/журнал - Системные и сервисные журналы
  • /дом - Файлы пользователей и веб-сайтов
  • /резервное копирование - Старые файлы резервных копий
  • /tmp - Временные файлы
  • /вар/lib/mysql - Файлы базы данных MySQL/MariaDB

3. Перечислите большие файлы

Иногда размер одного файла журнала может достигать 10 ГБ и более. Чтобы найти большие файлы, вы можете использовать эту команду:

find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null

Эта команда выводит список файлов размером более 500 МБ. Внимательно изучите полученные файлы. Особенно .бревно, .старый, .gz, .бак и старые файлы резервных копий следует проверить.

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

4. Безопасная очистка файлов журналов

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

truncate -s 0 /var/log/dosya_adi.log

Пример:

truncate -s 0 /var/log/syslog
truncate -s 0 /var/log/messages
truncate -s 0 /var/log/nginx/error.log

5. Очистка кэша пакетов

В системах на базе Ubuntu и Debian файлы кэша пакетов со временем могут занимать дисковое пространство.

apt clean
apt autoremove -y

В системах CentOS, AlmaLinux или Rocky Linux:

yum clean all
dnf clean all

6. Проверка старых резервных копий

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

find /backup -type f -mtime +7 -name "*.tar.gz" -ls

Эта команда выводит список резервных копий старше 7 дней. Чтобы удалить после проверки:

find /backup -type f -mtime +7 -name "*.tar.gz" -delete
Внимание: Прежде чем использовать команду удаления, обязательно проверьте, какие файлы будут удалены с помощью команды листинга.

7. Предотвратите перезагрузку с помощью настройки Logrotate

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

nano /etc/logrotate.conf

Пример простой логики логротации:

/var/log/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

Этот параметр возвращает файлы журналов ежедневно, хранит их в течение 7 дней и сжимает старые журналы.

Распространенные ошибки

  • Удаление системных файлов, не зная, какой это файл
  • Удаление текущего файла журнала без перезапуска службы
  • Хранение старых резервных копий в течение неограниченного периода времени
  • Не проверяю настройки logrotate вообще
  • Не вмешивайтесь, пока диск не заполнится на 100%.

Часто задаваемые вопросы

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

Лучше удалить или очистить файл журнала?
Вместо полного удаления файла журнала в запущенных службах обрезать Безопаснее опорожнить его с помощью .

Я очистил диск, но место не освободилось, почему?
Удаленный файл может по-прежнему оставаться открытым работающей службой. Возможно, потребуется перезапустить соответствующую службу.

Рекомендации по производительности и безопасности

  • Регулярно контролируйте использование диска.
  • Храните резервные копии на отдельном диске или в удаленной области резервного копирования.
  • Не оставляйте службу работающей на долгое время без использования logrotate.
  • Примите меры предосторожности, когда диск достигнет уровня 85%.
  • Не оставляйте журналы отладки постоянно открытыми на игровых серверах.

Эта статья специально подготовлена ​​для PvPServer.

Bu cevap yeterince yardımcı oldu mu?

Oyla

overlay spinner