Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

💾 Disk Space Analyzer

Комплексный анализатор дисковой системы для Debian 12 / Ubuntu 20+ с детальной диагностикой и красивым выводом.

License Bash Platform

🎯 Возможности

  • Полный анализ файловых систем — ext4, XFS, Btrfs, NFS, CIFS и другие
  • Визуализация монтирований — древовидная структура с зависимостями
  • Топология устройств — от физических дисков до логических томов
  • RAID / LVM / Btrfs диагностика — статус массивов и томов
  • Поиск проблем — крупные файлы, переполненные разделы, утечки памяти
  • SMART мониторинг — состояние дисков (опционально)
  • Контейнеры и снапы — Docker, Snap, Flatpak
  • Экспорт данных — JSON, CSV, TXT форматы
  • Цветной вывод — удобная навигация по результатам

📦 Установка

Скопируйте скрипт

wget https://raw.githubusercontent.com/saym101/disk-usage/refs/heads/main/disk-usage.sh

Сделайте скрипт исполняемым

chmod +x disk-usage.sh

Запустите

./disk-usage.sh

Зависимости

Обязательные:

  • coreutils (df, du, sort, awk)
  • util-linux (findmnt, lsblk)

Опциональные (для расширенного функционала):

apt install -y lsof mdadm lvm2 btrfs-progs smartmontools docker.io snapd

Скрипт автоматически проверит наличие утилит и предложит установить недостающие.

🚀 Использование

Базовые команды

# Стандартный анализ
./disk-usage.sh

# Быстрый режим (без поиска крупных файлов)
./disk-usage.sh --quick

# Глубокий анализ с SMART диагностикой
sudo ./disk-usage.sh --deep --with-smart

# Топ-10 крупных каталогов и файлов
./disk-usage.sh --topn 10 --min 50

Фильтрация и экспорт

# Анализ только конкретных разделов
./disk-usage.sh --only "/,/home"

# Включить псевдо-файловые системы (tmpfs, proc)
./disk-usage.sh --include-pseudo

# Экспорт в JSON
./disk-usage.sh --json report.json

# Экспорт в CSV
./disk-usage.sh --csv data.csv

# Сохранить текстовый отчет
./disk-usage.sh --txt analysis.txt

Примеры использования

Найти что занимает место на сервере:

./disk-usage.sh --deep --min 500 --topn 30

Быстрая проверка перед обновлением:

./disk-usage.sh --quick --only "/"

Полный аудит для отчета:

sudo ./disk-usage.sh --deep --with-smart --json server-audit.json

📊 Что анализируется

1. Файловые системы

  • Использование пространства и inodes
  • Точки монтирования
  • Типы ФС и источники

2. Структура устройств

  • Физические диски (HDD/SSD)
  • Разделы и их иерархия
  • Модели, серийные номера, WWN

3. RAID и LVM

  • Статус MD RAID массивов
  • Physical/Volume/Logical volumes
  • Btrfs субтома и использование

4. Сетевые монтирования

  • NFS, CIFS, FUSE
  • Опции монтирования
  • Статус подключения

5. Крупные потребители

  • Топ каталогов по размеру
  • Файлы ≥100MB (настраивается)
  • Журналы и кеши

6. Контейнеры

  • Docker (образы, контейнеры, тома)
  • Snap пакеты
  • Flatpak приложения

7. Утечки памяти

  • Удаленные, но открытые файлы
  • Процессы, держащие дескрипторы

8. Система подкачки

  • Swap разделы и файлы
  • tmpfs и shared memory

9. SMART диагностика

  • Состояние здоровья дисков
  • Критические атрибуты
  • Предупреждения

10. Предупреждения

  • Разделы заполнены >80%
  • Критические >90%
  • Проблемы с inodes

⚙️ Параметры

Опция Описание Значение по умолчанию
--quick Пропустить поиск крупных файлов false
--deep Включить расширенную диагностику false
--topn N Количество элементов в топах 20
--min N Минимальный размер файла (МБ) 100
--with-smart SMART диагностика (нужен root) false
--include-pseudo Показать tmpfs, proc и т.д. false
--only MOUNTS Анализировать только указанные разделы все
--json [FILE] Вывод в JSON -
--csv [FILE] Вывод в CSV -
--txt [FILE] Вывод в TXT stdout

🎨 Примеры вывода

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  1. Сводка по файловым системам
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ТОЧКА МОНТИРОВАНИЯ      FSTYPE       ВСЕГО    ЗАНЯТО  ДОСТУПНО   USE%   INODES%  ИСТОЧНИК
────────────────────────────────────────────────────────────────────────────────────────
/                        ext4        50.0GiB   35.2GiB   12.1GiB    74%      45%    /dev/sda1
/home                    ext4       500.0GiB  387.9GiB  102.1GiB    79%      62%    /dev/sdb1
/backups                 ext4      1000.0GiB  856.3GiB  143.7GiB    86%      71%    /dev/sdc1

🔧 Решение проблем

Скрипт не запускается:

# Проверьте права
chmod +x disk-usage.sh

# Проверьте интерпретатор
head -1 disk-usage.sh

Ошибки с правами доступа:

# Некоторые операции требуют root
sudo ./disk-usage.sh --with-smart

Медленная работа:

# Используйте быстрый режим
./disk-usage.sh --quick

# Ограничьте область анализа
./disk-usage.sh --only "/" --topn 10

📝 Системные требования

  • ОС: Debian 12, Ubuntu 20.04+, или совместимые
  • Shell: Bash 5.0+
  • Права: обычный пользователь (root для SMART)
  • Место: ~1MB для скрипта

🤝 Вклад в проект

Приветствуются:

  • 🐛 Сообщения об ошибках
  • 💡 Предложения новых функций
  • 🔧 Pull requests с улучшениями
  • 📖 Улучшения документации

📄 Лицензия

MIT License - свободное использование и модификация.

🙏 Благодарности

Создано для системных администраторов, которым надоело собирать информацию о дисках из десятка разных команд.


Поддержать проект: ⭐ Поставьте звезду на GitHub!

About

Disk Space Analyzer for Debian 12 / Ubuntu 20+ # Комплексный анализ дисковой системы с детальной информацией

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages