
Операционные системы: RHEL6.9
Проблема
У моей файловой системы /dev/mapper/vg_rayruhsso-lv_root
, на которой смонтировано устройство, /
нет доступного размера.
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_rayruhsso-lv_root
148G 145G 0 100% /
tmpfs 20G 0 20G 0% /dev/shm
/dev/sda1 477M 41M 411M 9% /boot
/dev/mapper/vg_rayruhsso-lv_home
270G 54G 202G 22% /home
Что я хочу решить
Выясняю, что заняло все пространство (я не хочу увеличивать его размер, так как на прошлой неделе он был увеличен с 52G до 148G). Проблема в том, что во время отслеживания я обнаружил, что/кореньзанимает много места (128G).
# du -sh *
984K
9.3M bin
39M boot
4.0K CdbsMutex
4.0K cgroup
180K dev
41M etc
54G home
215M lib
28M lib64
16K lost+found
4.0K media
0 misc
4.0K mnt
0 net
70M opt
du: cannot access `proc/4754/task/4754/fd/4': No such file or directory
du: cannot access `proc/4754/task/4754/fdinfo/4': No such file or directory
du: cannot access `proc/4754/fd/4': No such file or directory
du: cannot access `proc/4754/fdinfo/4': No such file or directory
0 proc
128G root
17M sbin
0 selinux
4.0K srv
0 sys
5.5M tmp
12G u01
3.2G usr
2.0G var
Я проверил его подкаталоги и обнаружил, что самый большой файл/каталог там составляет 330 МБ, хотя du -sh
отображает 128 ГБ.
#du -sh /root/*
4.0K /root/anaconda-ks.cfg
4.0K /root/Desktop
4.0K /root/Documents
4.0K /root/Downloads
64K /root/install.log
12K /root/install.log.syslog
4.0K /root/Music
4.0K /root/Pictures
4.0K /root/Public
4.0K /root/Templates
330M /root/veritas
4.0K /root/Videos
# cd /root/
# du -sh
128G
Что не так? Как узнать, какой файл занимает столько места?
Я попытался найти открытые файлы, но не получил никаких результатов:
lsof | grep deleted
Есть идеи?
Редактировать:
# du -h --max-depth=1 /root | sort -h
4.0K /root/Desktop
4.0K /root/Documents
4.0K /root/Downloads
4.0K /root/.gvfs
4.0K /root/Music
4.0K /root/.nautilus
4.0K /root/Pictures
4.0K /root/Public
4.0K /root/Templates
4.0K /root/Videos
8.0K /root/.abrt
8.0K /root/.ssh
12K /root/.dbus
16K /root/.gnote
16K /root/.gnupg
16K /root/.thumbnails
20K /root/.cache
28K /root/.gnome2
64K /root/.config
144K /root/.pulse
276K /root/.gconf
364K /root/.local
396K /root/.kde
330M /root/veritas
128G /root
решение1
После небольшого обсуждения и личной беседы...
Используйте du -h --max-depth=1 /root | sort -h
для поиска вещей, занимающих много места.
В настоящий момент вы пропускаете dot-файлы и dot-каталоги из-за расширения glob du -sh /root/*
.
Теперь, когда результаты включают dot-файлы и dot-папки из редактирования, похоже, что файлы, занимающие место, находятся непосредственно в /root
.
Чтобы получить обзор того, какие файлы занимают больше всего места, /root
используйте следующую команду.
ls -alhSr /root
решение2
Возможно ли, что вы дали команду на удаление, но она не была завершена, поскольку файлы, которые вы пытались удалить, использовались каким-то приложением?
Попробуйте запустить:
/usr/bin/lsof | grep deleted
Приведенная выше команда отобразит все файлы, ожидающие удаления и используемые процессом.
Если такие файлы существуют, завершите их процесс и проверьте емкость еще раз.
Объяснение:
В системах Linux или Unix удаление файла через rm или через приложение файлового менеджера отсоединит файл от структуры каталогов файловой системы; однако, если файл все еще открыт (используется запущенным процессом), он все еще будет доступен этому процессу и продолжит занимать место на диске. Поэтому такие процессы, возможно, придется перезапустить, прежде чем место этого файла будет очищено в файловой системе.
Более подробную информацию по этой теме можно найтиздесь.
решение3
Вы также можете взглянуть на ncdu
. Он очень похож на treesize и много раз помогал мне находить большие файлы и структуры каталогов.