Проблема с заполненным разделом в Linux встречается часто. По большей степени это возникает из за ранее созданного раздела с маленьким объемом. Например под раздел /var отвели всего 10 Гб, так как он используется многими программами для хранения данных, часто виновником переполнения становится именно он. Бывает что и корневой раздел заполняется.
В этой короткой записке написано про то, как определить какой каталог или файл съел много места на диске.
Начинаем искать большое...Открываем консоль сервера и вводим команду:
# df -h
Это команда показывает список разделов и их заполненность:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9,7G 9,2G 3,4M 100% /
tmpfs 943M 144K 943M 1% /dev/shm
/dev/sda2 4,9G 3,7G 974M 80% /home
Здесь видно что заполнен корневой раздел, его размер 9.7Gb и все его место заполнено до 100%.
Идем дальше и вводим команду, чтобы узнать какой каталог съел место в корневом разделе /:
# du -hs /*
Если у вас заполнен раздел /var, вводим аналогичную команду с указанием каталога:
# du -hs /var/*
После команды du -hs /*, получаем список каталогов корневого раздела / с занимаемым местом каждого:
# du -hs /*
7,2M /bin
128M /boot
396K /dev
32M /etc
3,5G /home
436M /lib
16K /lost+found
4,0K /media
0 /misc
4,0K /mnt
0 /net
30M /opt
0 /proc
297M /root
14M /sbin
4,0K /selinux
4,0K /srv
0 /sys
164K /tmp
2,5G /usr
5,4G /var
0 /vbusbfs
Здесь мы видим что заполнены каталоги:
/var - 5,4 Gb
/usr - 2,5 Gb
... - 950 Mb (маленькие каталоги)
Итого выходит - 9.7 Gb
Раздел /home не считаем, так как он отдельный, вспомните вывод команды df -h (/dev/sda2 - /home)
Большие каталоги это /var и /usr
Необходимо узнать что лежит большое в каталоге /var :
# cd /var
# du -sh *|sort -rn
291M log
272K run
78M spool
48M cache
24K lock
12K yp
12K db
8,0K traffpro
8,0K empty
5,0G lib
4,0K traffpro_back
4,0K tmp
4,0K preserve
4,0K opt
4,0K nis
4,0K local
4,0K gdm
4,0K games
4,0K cvs
4,0K crash
4,0K account
2,6M named
1,2M www
0 mail
Здесь видно что каталог /var/lib/ сожрал 5 Gb драгоценного места.
Вот где где собака зарыта!!!
Теперь осталось найти самого виновника, точнее файлы громадных размеров:
Заходим в каталог /var/lib
# cd /var/lib
И вводим команду:
# du -sh *|sort -rn
16K samba
13M yum
12K stateless
12K prelink
8,0K xkb
8,0K udev
8,0K postfix
8,0K plymouth
8,0K php
8,0K NetworkManager
8,0K ipa-client
8,0K dbus
8,0K authconfig
4,8G mysql
4,4M mlocate
4,0K udisks
4,0K rsyslog
4,0K random-seed
4,0K pulse
4,0K ntp
4,0K net-snmp
4,0K misc
4,0K logrotate.status
4,0K games
4,0K fprint
4,0K dhclient
4,0K DeviceKit-power
4,0K dav
1,3M PackageKit
Здесь видно, что каталог СУБД (базы данных) MySQL распух до 4,8 Gb.
Теперь осталось зайти в этот каталог MySQL и узнать кто внутри него занял дисковое место.
# cd /var/lib/mysql
# du -sh *|sort -rn
18M ibdata1
5,0M ib_logfile1
5,0M ib_logfile0
4,8G traffpro
1,1M mysql
0 mysql.sock
Здесь видно что каталог traffpro занял 4,8 Гб.
Зайдем в него и посмотрим размеры файлов что лежат там:
# cd /var/lib/mysql/traffpro
# du -hs /var/lib/mysql/traffpro/* | sort -n
12K /var/lib/mysql/traffpro/web_menu.frm
12K /var/lib/mysql/traffpro/web_plugins.frm
12K /var/lib/mysql/traffpro/wm_payment.frm
16K /var/lib/mysql/traffpro/contacts.frm
16K /var/lib/mysql/traffpro/wm_purse.frm
28K /var/lib/mysql/traffpro/log_data.MYD
403M /var/lib/mysql/traffpro/url_usr_serfing.TMD
588M /var/lib/mysql/traffpro/url_usr_serfing.MYD
592M /var/lib/mysql/traffpro/url_usr_serfing_opt.MYD
767M /var/lib/mysql/traffpro/url_usr_serfing_opt.MYI
824M /var/lib/mysql/traffpro/url_usr_serfing.MYI
849M /var/lib/mysql/traffpro/clients_traff.MYI
857M /var/lib/mysql/traffpro/clients_traff.MYD
Аналогичным способом можно узнать что лежит тяжелое в каталоге /usr.
Бывает так, что некоторые программы пишут в несушествующий файл, и поэтому нельзя найти виновника заполнения диск, но есть способ определить это через команду:
# lsof | grep del
Или перезагрузить комп.
Заключение
С помощью применения двух команд "du -hs /*" и "du -hs /var/lib/mysql/traffpro/* | sort -n", в Linux операционной системе, можно узнать како й каталог или файл занимает огромное пространство вашего диска.