Одна из наиболее распространенных манипуляций, которую вы будете делать, как системный администратор Linux, это находить ненужные большие файлы, которые занимают дисковое пространство, и удалять их, чтобы освободить место для приложений, которые нуждаются в дополнительном пространстве. Давайте углубимся и узнаем, как мы можем найти большие файлы в Linux.
1. Обнаружение больших каталогов и файлов в Linux
Во-первых, мы посмотрим на то, как мы можем найти самые большие файлы и каталоги в Linux, выполнив следующую команду, чтобы найти топ-10 больших каталогов и файлов на сервере Linux:
# du -ah /* 2>/dev/null | sort -rh | head -n 10
Вывод должен показать вам самые большие каталоги и файлы:
4.3G /backup
1.2G /usr
1.2G /var
845M /home
698M /var/lib
675M /odoo
634M /usr/lib
621M /odoo/odoo-server
622M /home/largefile3
398M /odoo/odoo-server/addons
2. Нахождение топ крупнейших каталогов в Linux
Эта команда может быть очень полезна, когда вам необходимо проверить размер каталогов в корневом разделе, чтобы получить представление о том, как используется распределяется пространство на сервере, с помощью следующей команды вы можете найти топ 10 крупнейших каталогов в корневом разделе:
# du -sh /*/ 2>/dev/null | sort -rh | head -n 10
Вывод должен показать вам самые большие каталоги:
4.3G /backup
1.2G /usr/
1.2G /var/
845M /home/
675M /odoo/
143M /opt/
51M /lib/
39M /run/
29M /root/
9M /bin/
Кроме того, можно использовать следующую команду, чтобы проверить размер подкаталогов данного каталога, в данном случае мы будем использовать каталог «var»:
# find /var/* -type d -exec du -sh {} 2>/dev/null + | sort -rh | head -n 10
Вывод должен перечислить поддиректории каталога «var»:
723M /var/lib
295M /var/cache
38M /var/www
2.8M /var/log
87K /var/spool
48K /var/backups
19K /var/mail
9K /var/tmp
4.0K /var/opt
4.0K /var/local
3. Нахождение топ самых больших файлов в Linux
Иногда вы можете искать большие файлы, особенно большие лог-файлы, которые могут довольно быстро заполнить ваш сервер, с помощью следующей команды вы можете найти топ 10 самых больших файлов на сервере:
# find / -type f -exec du -sh {} 2>/dev/null + | sort -rh | head -n 10
Вывод должен показать вам самые большие файлы:
487M /home/largefile3
345M /home/largefile2
211M /home/largefile1
123M /odoo/odoo-server/.git/objects/pack/pack-dcf71f4c259beb1fgt56е3b4a00a45e1f2a8382.pack
123M /backup/odoo/odoo-server/.git/objects/pack/pack-dcвdd1f4c259beb35445666аb4a00a45e1f2a8382.pack
98M /var/lib/mongodb/journal/WiredTigerPreplog.0000000002
197M /var/lib/mongodb/journal/WiredTigerPreplog.0000000001
100M /backup/var/lib/mongodb/journal/WiredTigerPreplog.0000000002
100M /backup/var/lib/mongodb/journal/WiredTigerPreplog.0000000001
66M /var/lib/mysql/ibdata1
Нахождение самых больших файлов с определенным расширением в Linux
Если вы ищете большие файлы с определенным расширением, вы можете найти топ 10 самых больших файлов по их расширению с помощью следующей команды, мы будем использовать расширение «deb» в этом случае:
# find / -type f -iname "*.deb" -exec du -sh {} + | sort -rh | head -10
Вывод должен показать вам самые большие файлы, содержащие указанное расширение:
30M /var/cache/apt/archives/mongodb-org-tools_3.2.14_amd64.deb
30M /backup/var/cache/apt/archives/mongodb-org-tools_3.2.14_amd64.deb
26M /var/cache/apt/archives/libpython2.7-dev_2.7.12-1ubuntu0~16.04.1_amd64.deb
26M /backup/var/cache/apt/archives/libpython2.7-dev_2.7.12-1ubuntu0~16.04.1_amd64.deb
13M /opt/wkhtmltox-0.12.1_linux-trusty-amd64.deb
13M /backup/opt/wkhtmltox-0.12.1_linux-trusty-amd64.deb
9.5M /var/cache/apt/archives/mongodb-org-server_3.2.14_amd64.deb
9.5M /backup/var/cache/apt/archives/mongodb-org-server_3.2.14_amd64.deb
7.9M /var/cache/apt/archives/g++-5_5.4.0-6ubuntu1~16.04.4_amd64.deb
7.9M /backup/var/cache/apt/archives/g++-5_5.4.0-6ubuntu1~16.04.4_amd64.deb