Системному администратору часто приходится сталкиваться с проблемой нехватки места на дисках. Можно конечно, просто наращивать объёмы, если инфраструктура это позволяет. Но, в любом случае, неплохо бы узнать чем диски забились и какие папки занимают больше всего места.
Сперва на ум приходят встроенные утилиты. К примеру, занятое место на дисках можно узнать с помощью df:
df -h
df -T
Размеры всех директорий в папке можно узнать с помощью du:
cd /mydir1/mydir2
du -h --max-depth 1
Размер одной выбранной папки:
du -sh /mydir1/mydir2
Место, занимаемое файлами в корне папки:
du -sSh /mydir1/mydir2
Когда нужно именно найти в ворохе папок самые "толстые", то на помощь приходит утилита ncdu.
Установка ncdu:
apt-get install ncdu
или
yum install ncdu
Для определения размера директорий внутри текущей выполняем:
ncdu
К примеру, мне нужно определить размеры всех папок:
ncdu /
Начинается сканирование. Процесс небыстрый.
После сканирования попадаем в графический интерфейс утилиты ncdu. Сортировка по умолчанию: по убыванию размера.
Можно перемещаться по дереву каталогов. Можно удалять директории. Разберётесь.
- up, k — курсор вверх
- down, j — курсор вниз
- right, enter — открыть папку
- left, <, h — открыть предыдущую папку
- n — сортировка по имени
- s — сортировка по размеру
- C — сортировка по количеству элементов
- d — удалить выбранный файл или папку
- t — переключение между папками и файлами при сортировке
- g — проценты и/или график
- q — выход
Ещё один интересный способ. WinSCP может подсчитать размер директории в Linux.
WinSCP — SFTP, FTP, SCP, WebDAV и S3 клиент для Windows