Если ваш сайт перестал открываться, а при попытке зайти по SSH вы видите «No space left on device», значит, у вас закончилось место на сервере linux. Ситуация критическая, но не стоит паниковать и бездумно удалять системные файлы – это верный способ окончательно «положить» сервер. Чтобы быстро восстановить работу, нужно найти источник проблемы:
- системные логи и ошибки приложения, разросшиеся до огромных размеров;
- кеш пакетных менеджеров и накопившиеся временные файлы;
- старые бэкапы, которые вовремя не были перенесены во внешнее хранилище.
В этой статье мы разберем пошаговый алгоритм: как найти «пожирателей» дискового пространства и безопасно очистить диск от мусора.
Содержание:
- Диагностика: ищем «убийцу» дискового пространства
- Поиск «мусора» – лучшие инструменты для админа
- Шпаргалка: что можно удалять безопасно, а что трогать нельзя
- Чистим сервер: пошаговый алгоритм удаления
- Превентивные меры, чтобы диск не кончался снова
- Чек-лист ежемесячного обслуживания сервера
- Когда очистка не поможет: сигналы к увеличению диска
- Заключение
- Часто задаваемые вопросы
Диагностика: ищем «убийцу» дискового пространства

Прежде чем приступать к удалению, необходимо понять, что именно стало причиной сбоя. В Linux часто возникает ситуация, когда диск физически заполнен, но бывает и так, что свободное место отображается корректно, однако файлы не создаются. Чтобы точно знать, где искать корень проблемы, нужно разделить проверку физического объема и проверку индексных дескрипторов (inodes).
Проверяем место командой df -h
Команда df -h (disk free) – ваш первый инструмент для базовой диагностики. Она показывает список смонтированных файловых систем и объем занятого пространства.
Выполните команду в терминале и обратите внимание на столбец Use% для раздела, смонтированного в корень (Mounted on /):
df -h
Если вы видите значение 90% и выше, это критический порог. При таком заполнении многие сервисы (например, базы данных MySQL/PostgreSQL или веб-серверы Nginx/Apache) начинают работать нестабильно, блокируют запись логов или сессий, что приводит к «падению» сайта.
Что такое Inodes и почему диск полон, хотя место есть
Часто бывает, что df -h показывает 50% свободного места, но система выдает ошибку «No space left on device». Причина кроется в inodes. Inode – это структура данных, описывающая объект файловой системы (файл или каталог). Количество inodes на диске ограничено при форматировании. Если вы создали миллионы крошечных файлов (например, кэш сессий или временные файлы), лимит inodes будет исчерпан раньше, чем закончится физическое место. Проверить это можно командой df -i.
| Симптом (ошибка) | Что проверять | Команда для диагностики |
| Физическое переполнение | Занято место на диске | df -h |
| Ошибка записи (место есть) | Исчерпан лимит inodes | df -i |
Если IUse% достигло 100%, значит, нужно искать директории с огромным количеством мелких файлов, а не просто с «тяжелыми» данными.
Поиск «мусора» – лучшие инструменты для админа
Когда вы определили, что диск действительно переполнен, пора вычислить конкретные пути к файлам-нарушителям. Чаще всего проблема локализована в пяти «подозреваемых» директориях, которые стоит проверить в первую очередь:
/var/log– здесь скапливаются логи веб-серверов, системные сообщения и записи ошибок приложений;/tmp– временные файлы, которые часто забывают удалять после завершения процессов;/var/cache– кэши пакетных менеджеров и веб-приложений;/var/lib/docker– слои Docker-контейнеров, которые растут незаметно для администратора;/home/user/backups– личные бэкапы или архивы, про которые часто забывают.
Быстрый поиск тяжелых папок через du
Если у вас нет времени на установку дополнительного софта, используйте встроенную утилиту du (disk usage). Команда du -sh /* покажет размер всех папок в корневой директории, помогая быстро отсечь лишнее.
Чтобы найти самые тяжелые файлы и подпапки внутри конкретного каталога (например, /var), используйте более продвинутую конструкцию:
du -ah /var | sort -rh | head -n 20
Эта команда рекурсивно считает размер каждого файла, сортирует их по убыванию (-rh) и выводит топ-20 самых больших. Она незаменима, когда нужно быстро увидеть, какой именно файл или лог «съедает» место.
ncdu – ваш лучший друг
Для более комфортной работы лучше установить ncdu (NCurses Disk Usage). Это консольная утилита с текстовым интерфейсом, которая визуализирует структуру папок. Она позволяет перемещаться по директориям стрелочками и сразу видеть, где сосредоточен основной объем данных. Установка занимает секунды: sudo apt install ncdu.
Пример вывода ncdu:
— /var ———————————————————
85.4 GiB [##########] /log
12.1 GiB [# ] /lib
2.5 GiB [ ] /cache
…

С такой визуализацией вы за 30 секунд находите папку, занимающую 80% места, и можете удалить ненужное прямо в интерфейсе программы клавишей d. Это исключает ошибки ручного ввода команд и экономит время, что критически важно, когда сервер находится в состоянии «лежачей» системы.
Шпаргалка: что можно удалять безопасно, а что трогать нельзя
Прежде чем активировать команду rm -rf, сверьтесь с этой таблицей. Она поможет очистить диск и не сломать операционную систему.
| Директория / Тип файлов | Что это такое | Уровень безопасности | Как правильно очищать |
| /var/cache/apt/archives/ (или yum) | Скачанные кэши обновлений пакетов | Абсолютно безопасно | Командами apt clean или yum clean all. |
| /tmp/ | Временные файлы операционной системы | Безопасно (для старых файлов) | Удалять только те файлы, к которым не было обращений более 2–3 дней. |
| /var/log/*.gz или *.1 | Архивы старых логов, прошедшие ротацию | Безопасно | Можно смело удалять через rm, текущие логи они не затронут. |
| /var/log/nginx/access.log (или error.log) | Активные (живые) логи веб-сервера | Опасно удалять сам файл | Не удаляйте файл! Очищайте его содержимое командой truncate -s 0. |
| /var/lib/docker/volumes/ | Постоянные данные контейнеров Docker | Крайне опасно | Там могут храниться ваши базы данных. Используйте только официальные команды очистки Docker. |
| Любые файлы в /bin, /sbin, /lib, /boot | Системные бинарники, ядра и библиотеки | Критически опасно | Никогда не удаляйте вручную. Сервер больше не загрузится. |
Чистим сервер: пошаговый алгоритм удаления
Когда вы нашли «пожирателей» места, важно действовать последовательно. Не спешите удалять все подряд, особенно файлы, которые могут быть заняты системными процессами. Ничего не удаляйте, если не уверены в предназначении файла.
Очистка кэша пакетных менеджеров
Самый простой и безопасный способ освободить несколько гигабайт – очистить кэш пакетного менеджера. Эти файлы скачиваются при установке обновлений и остаются на диске «на всякий случай».
Для систем на базе Debian/Ubuntu:
sudo apt clean # удаляет скачанные пакеты
sudo apt autoremove # удаляет ненужные зависимости
Для систем на базе CentOS/RHEL/AlmaLinux:
sudo yum clean all # очистка кэша всех репозиториев
Управление логами
Логи – главная причина внезапного заполнения диска. Часто файлы вроде access.log и error.log разрастаются до десятков гигабайт. Важно: нельзя просто удалять файл лога, если сервис запущен – он продолжит писать в дескриптор удаленного файла, и место не освободится.
Используйте метод усечения (truncate) для очистки файлов без их удаления:
# усечение файла до нулевого размера
truncate -s 0 /var/log/nginx/access.log
Это позволит очистить файл, не перезапуская веб-сервер.
Очистка Docker
Если ваш сервер использует контейнеризацию, docker system prune – ваш главный инструмент. Docker часто оставляет старые образы, кэш сборки и остановленные контейнеры, которые могут занимать десятки гигабайт.
Очистка неиспользуемых ресурсов:
# удаление всех остановленных контейнеров и неиспользуемых образов
docker system prune -a —volumes
Будьте осторожны: эта команда удалит все остановленные контейнеры и неиспользуемые сети. Убедитесь, что вы не удалите критически важные данные, которые не примонтированы в виде Volume.
Нужен максимально производительный выделенный сервер? Cloud4box — это выделенные серверы (Dedicated Server) на быстрых SSD/NVME-дисках с круглосуточной поддержкой. Гарантия 100% мощности, полный физический контроль и настройка под любые задачи. Поможем с миграцией любых проектов! Мы гарантируем бескомпромиссную производительность, изоляцию ресурсов и полный доступ к серверу из любой точки мира. Вы сможете запускать ресурсоёмкие приложения, базы данных, игровые проекты и корпоративные системы, не беспокоясь о соседях по серверу или нехватке ресурсов.
Поиск и удаление старых бэкапов
Бэкапы – это важно, но они не должны храниться вечно на рабочем сервере. Найдите старые архивы командой find и удалите их:
# поиск файлов старше 30 дней и их удаление
find /home/user/backups -type f -name «*.tar.gz» -mtime +30 -exec rm -f {} \;
Всегда проверяйте список файлов перед запуском команды с rm (сначала выполните просто ls -lh, чтобы убедиться, что удаляются нужные архивы).
Осторожно! Если вы удалили файл, но место на диске не освободилось, значит, файл все еще открыт каким-то процессом. Проверить это можно командой:
sudo lsof | grep deletedВы увидите список файлов, которые удалены, но удерживаются процессами. Чтобы освободить место, нужно перезапустить соответствующий сервис (например,
sudo systemctl restart nginx).
Превентивные меры, чтобы диск не кончался снова
Чтобы не возвращаться к экстренной очистке, настройте автоматизацию прямо сейчас.
Настройка Logrotate
Это системная утилита, которая управляет автоматической ротацией, сжатием и удалением старых файлов логов. По умолчанию она настроена для большинства сервисов, но если вы добавили свое приложение, проверьте конфигурацию в /etc/logrotate.conf и /etc/logrotate.d/. Установите параметры rotate и size (например, хранить 7 копий или удалять логи при превышении 100 МБ), чтобы дисковое пространство оставалось под контролем.
Мониторинг
Не ждите звонка от клиента о том, что сайт не работает. Настройте простейший скрипт на Cron, который проверяет свободное место и отправляет уведомление в Telegram при достижении 80–90% заполнения диска. Для сложных инфраструктур используйте Zabbix или Prometheus – они дают полную картину использования ресурсов и предупреждают о проблемах задолго до того, как диск будет полностью забит.
Чек-лист ежемесячного обслуживания сервера
Чтобы сервер работал стабильно, внедрите простое правило: раз в месяц (например, в первый рабочий день) выделять 10 минут на профилактику по этому списку:
- Контроль физического места и Inodes. Выполнить команды
df -hиdf -i. Убедиться, что оба показателя не превышают 75–80%. - Ревизия бэкапов. Проверить, что локальные архивы успешно перезаписываются и удаляются по истечении срока, а свежие резервные копии без ошибок улетают в облако.
- Уборка в Docker. Провести профилактическую чистку неиспользуемых образов и слоев сборки через
docker system prune(без флага -a, чтобы сохранить базовые кэши). - Проверка логов-переростков. Убедиться, что
logrotateуспешно отрабатывает во всех директориях и в системе нет «зависших» лог-файлов размером в десятки гигабайт. - Очистка системных хвостов. Удалить старый кэш обновлений менеджера пакетов (
apt clean/yum clean all), освободив место под будущие апдейты.
Когда очистка не поможет: сигналы к увеличению диска
Бывают ситуации, когда даже идеальная регулярная уборка не спасает от нехватки места. Если вы удалили весь кэш, настроили логи, перенесли бэкапы, а места все равно впритык – дело не в мусоре, а в росте самого проекта.

Вам точно пора расширять диск, если:
- Диск забивается за 2–3 дня после очистки. Это значит, что темпы генерации полезных данных (базы данных, пользовательский контент) превышают текущие лимиты сервера.
- База данных занимает более 60–70% диска. Данные из БД удалять нельзя – это ядро вашего бизнеса. Единственный путь – масштабирование.
- Активное использование Docker-окружения. Каждый новый микросервис, тесты и деплой требуют хранения новых слоев образов. В рамках минимальных тарифов им быстро становится тесно.
Не рискуйте стабильностью своего бизнеса! Переполнение диска опасно не просто отключением сайта, а повреждением таблиц баз данных, восстанавливать которые придется часами. Если ваш проект перерос текущий тариф, самое разумное решение – плановое увеличение ресурсов. У нас вы можете увеличить объем NVMe-диска в 1 клик прямо в личной панели управления. Процедура проходит абсолютно бесшовно: без потери данных и без остановки работы ваших сайтов. Затрудняетесь с расчетом нужного объема? Напишите в нашу тикет-систему: наши инженеры проведут аудит сервера и помогут переехать на более просторный тариф!
Заключение
Теперь вы знаете, как быстро вернуть сервер в строй и не допустить паники при критических ошибках. Регулярная диагностика и правильная настройка логирования – это фундамент стабильности вашего проекта. Помните: лучше потратить 10 минут на настройку автоматической очистки, чем часы на восстановление поврежденной базы данных в экстренной ситуации.
Если проблема оказалась сложнее и диск забивается «на лету», а вы не можете найти причину – оставьте заявку на аудит нашего инженера или ознакомьтесь с тарифами на администрирование наших серверов. Не ждите, пока база данных повредится – пишите прямо сейчас.
Часто задаваемые вопросы
Скорее всего, удаленный файл все еще открыт активным процессом. Пока процесс не будет остановлен или перезапущен, файловая система продолжает резервировать место под этот «удаленный» файл. Проверьте список командой lsof | grep deleted и перезапустите соответствующий сервис.
Да, в большинстве случаев содержимое /tmp – это временные файлы, созданные программами для текущих сессий. При перезагрузке системы эта папка часто очищается автоматически. Однако перед удалением вручную убедитесь, что там нет критически важных файлов, которые используются долгоживущими процессами.
Если вы настроили logrotate и используете системы мониторинга, ручная очистка может требоваться крайне редко (раз в несколько месяцев). Если же сервер забивается быстро, значит, есть проблема в настройках приложения или неправильной ротации логов, которую нужно устранить на уровне конфигурации.
Часто крупные данные скрыты в файлах или директориях, начинающихся с точки (например, .cache или .config), которые стандартная команда ls не отображает. Чтобы найти скрытых «пожирателей» места, используйте команду ls -la или настройте ncdu на отображение скрытых файлов (в интерфейсе ncdu это делается нажатием клавиши h). Также проверьте, не смонтирован ли другой диск поверх папки с данными: если вы примонтировали раздел в непустую директорию, старые файлы станут недоступны, но продолжат занимать место на основном диске.
Если вы удалили весь возможный «мусор», но место все равно заканчивается, это сигнал, что проект перерос текущий тариф. В условиях работы с виртуальными серверами лучшим решением будет расширение дискового пространства через панель управления вашего хостинг-провайдера. После увеличения объема диска на уровне гипервизора вам нужно будет расширить файловую систему внутри Linux (обычно с помощью утилит resize2fs для ext4 или xfs_growfs для XFS), чтобы система увидела новое пространство без необходимости переустановки сервера.