Закончилось место на сервере Linux: поиск и очистка больших файлов (df, du)
Симптомы переполненного диска
База данных MySQL автоматически выключается (Shutdown complete), сайты перестают загружать картинки, ломаются сессии авторизации. Команда df -h показывает 100% Use на корневом разделе /.
Поиск и удаление пожирателей дискового пространства
- Оцените занятое пространство по дисковым разделам:
df -h - Найдите топ-10 самых тяжелых папок на сервере:
sudo du -ahx / | sort -rh | head -n 10 - Найдите файлы размером больше 500 Мегабайт:
sudo find / -xdev -type f -size +500M -exec ls -lh {} + - Быстрая очистка стандартного системного мусора:
# Очистка системного журнала systemd journal до 100 Мб: sudo journalctl --vacuum-size=100M # Очистка кэша пакетов apt: sudo apt clean sudo apt autoremove --purge -y # Удаление старых сжатых ротированных логов (*.gz): sudo rm -f /var/log/*.gz /var/log/*/*.gz - Как очистить гигантский работающий лог-файл без остановки службы:
# Не удаляйте файл через rm, а обнулите его размер: > /var/log/nginx/access.log
Ловушка удаленных файлов (Deleted open files): Если вы удалили большой файл через rm, но процесс (например, Nginx) продолжает держать его открытым, место не освободится! Проверьте список таких файлов командой: sudo lsof | grep deleted и перезапустите соответствующую службу.
Частые вопросы (FAQ)
Чем отличается команда df от du?
Команда df (Disk Free) показывает общую статистику свободного и занятого места по дисковым разделам. Команда du (Disk Usage) сканирует конкретные файлы и папки и считает их точный объем.
Безопасно ли удалять содержимое папки /tmp?
Да, в папке /tmp хранятся временные файлы. Однако файлы, используемые запущенными приложениями прямо сейчас, лучше не трогать.
Как очистить кэш Docker, если он забил весь диск?
Выполните команду глубокой очистки: docker system prune -a --volumes -y.
Как наглядно просматривать тяжелые папки в графическом терминале?
Установите удобный сканер ncdu: sudo apt install ncdu -y, и запустите его командой ncdu /.