Как устранить ошибку переполнения диска на 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.