В Linux (Debian, Ubuntu, CentOS и т.д) для этого есть несколько универсальных утилит.
df - Основная утилита для анализа места на диске
Основная утилита для анализа места на диске — это само собой df.
Самый распространенный вариант применения утилиты DF:
df -h
В итоге вы увидите вот такую картину:
- Filesystem > отображает текущий каталог
- Size > показывает общее место на каждом из подмонтированных дисков
- Used > занятое место в мегабайтах/гигабайтах и процентах (столбцы «Used» и «Use%»)
- Avail > сколько осталось свободного места (Столбец «Avail»)
- Use > процентное использование
[root@server ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda3 58G 6,3G 48G 12% / tmpfs 2,0G 0 2,0G 0% /dev/shm /dev/xvda1 194M 117M 68M 64% /boot
Второй очень важный вариант использования утилиты DF:
df -i
аргумент «-i» указывает на необходимость вывода статистики по Inode («инодам»). Проще говоря, сколько всего файлов и папок можно создать на диске (Inodes), сколько уже создано (IUsed, IUse%), сколько ещё можно создать (IFree):
[root@server ~]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvda3 3726848 309625 3417223 9% / tmpfs 181859 1 181858 1% /dev/shm /dev/xvda1 51200 62 51138 1% /boot
Согласитесь, что не совсем понятно, что именно занимает дисковое пространства на Centos 7. Просто представьте ситуацию, что у вас есть какой-то каталог, занимающий 100 гб и там огромное количество файлов, а вам нужно понять, что именно занимает это пространство. Для решения это задачи есть утилита ncdu, она не идет в стандартной сборке и ее нужно доставлять.
Как узнать, какая папка занимает больше всего места?
Для этого можно задействовать утилиту ncdu.
Установка утилиты ncdu на Centos 7
Она не входит в стандартные репозитории centos 7, и вам в начале нужно добавить EPEL Repository. Делается это установкой RPM пакета.
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
Теперь проверьте добавился ли у вас EPEL Repository в список репозиториев Centos 7, через команду:
yum repolist
сама установка ncdu производится командой:
yum install ncdu -y
Запуск утилиты NCDU НА CENTOS 7
Все теперь запускаем утилиту ncdu.
ncdu /
Можно сразу перемещаться между каталогами, с помощью стрелок и зайти так в любой каталог.
Если нажать ?, то вылезет подсказка с горячими клавишами, которые помогут расширить функционал, например сортировка или удаление файлов.
как Быстро найти самые большие файлы в системе?
Быстро узнать самые большие файлы в системе можно так:
ls -lR | sort -k5 -n
Выполнять ее лучше всего в корне под рутом, чтобы не пропустить все системные подкаталоги. В выводе этой команды самые большие файлы будут располагаться ближе к концу, чтобы не пришлось мотать вверх по буферу консоли (ведь и буфера консоли может не хватить).
Недостаток команды: видны имена файлов, но не видны директории, в которых находятся эти файлы. Это впринципе не большая проблема, так как самых больших файлов обычно не более десятка, и даже если непонятно где они находятся, их можно найти по имени и размеру через команду find.
find . -type f -printf '%20s %p\n' | sort -n | cut -b22- | tr '\n' '\000' | xargs -0 ls -laSr
НАЙТИ 10 САМЫХ БОЛЬШИХ ФАЛОВ, НАЧИНАЯ с директории <DIR>
Выполните следующую комбинацию команд для поиска десяти самых больших файлов в Linux, начиная с директории <DIR> (измените <DIR> на директорию в которой Вы хотите запустить поиск).
find <DIR> -mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk '{printf "%10d MB\t%s\n",($7/1024)/1024,$NF}'
Найти 10 самых больших фалов, начиная с ‘/’ (корня)
find / -mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk '{printf "%10d MB\t%s\n",($7/1024)/1024,$NF}'
Найти 10 самых больших фалов, начиная с ‘/home’
find /home -mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk '{printf "%10d MB\t%s\n",($7/1024)/1024,$NF}'