Поиск больших файлов и топ директорий по размеру
Быстрый поиск больших файлов и директорий, занимающих место на диске (du, sort, find).
Как использовать
- Скопируйте нужный фрагмент кода.
- Вставьте в свой проект и при необходимости измените под задачу.
- Проверьте зависимости и окружение (версии, переменные).
Быстрый поиск больших файлов и директорий для освобождения места на диске. Используйте когда заканчивается место на сервере.
# 1. Топ-10 самых больших директорий в текущей папке
du -h --max-depth=1 | sort -hr | head -10
# 2. Топ-20 самых больших директорий в системе (корень)
sudo du -h --max-depth=1 / 2>/dev/null | sort -hr | head -20
# 3. Топ-10 самых больших файлов в текущей директории и поддиректориях
find . -type f -exec du -h {} + | sort -hr | head -10
# 4. Поиск файлов больше 100MB
find /var/www -type f -size +100M -exec ls -lh {} \; | awk '{print $5, $9}'
# 5. Поиск файлов больше 1GB с сортировкой
find / -type f -size +1G -exec ls -lh {} \; 2>/dev/null | sort -k5 -hr
# 6. Размер конкретной директории с человекочитаемым форматом
du -sh /var/www/html
# 7. Детальный размер всех поддиректорий (топ-15)
du -h --max-depth=2 /var/www 2>/dev/null | sort -hr | head -15
# 8. Поиск старых больших логов (старше 30 дней, больше 100MB)
find /var/log -type f -size +100M -mtime +30 -exec ls -lh {} \;
# 9. Топ файлов по размеру в конкретной директории
find /var/www/uploads -type f -exec du -h {} + 2>/dev/null | sort -hr | head -20
# 10. Общий размер всех файлов определённого типа (например, .log)
find /var/log -name "*.log" -type f -exec du -ch {} + | tail -1
Комбинированная команда для быстрой диагностики:
#!/bin/bash
# Скрипт для анализа дискового пространства
echo "=== Топ-10 директорий по размеру ==="
du -h --max-depth=1 / 2>/dev/null | sort -hr | head -10
echo -e "\n=== Файлы больше 500MB ==="
find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null | awk '{print $5, $9}' | head -10
echo -e "\n=== Общее использование диска ==="
df -h
Usage:
Запустите команды в терминале. Для системных директорий может потребоваться sudo. Используйте 2>/dev/null чтобы скрыть ошибки доступа.
Notes:
⚠️ Команды с find / могут выполняться долго на больших дисках. Для продакшена используйте более специфичные пути (например, /var/www вместо /). du -h показывает размер в человекочитаемом формате (KB, MB, GB).