Yvision.kz
kk
Разное
Разное
399 773 постов42 подписчика
Всяко-разно
0
05:06, 31 июля 2014

Заполнен жесткий диск в CentOS, как узнать кто съел место?

Blog post image

Проблема с заполненным разделом в 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

Как видно, файлы баз данных traffpro съели все место - печалька. Далее стираем файлы или увеличиваем раздел.

Аналогичным способом можно узнать что лежит тяжелое в каталоге /usr.

Бывает так, что некоторые программы пишут в несушествующий файл, и поэтому нельзя найти виновника заполнения диск, но есть способ определить это через команду:

# lsof | grep del

Или перезагрузить комп.

 

Заключение

С помощью применения двух команд "du -hs /*" и "du -hs /var/lib/mysql/traffpro/* | sort -n", в Linux операционной системе, можно узнать како й каталог или файл занимает огромное пространство вашего диска.

0
10701
2