Страницы

Поиск по вопросам

понедельник, 23 декабря 2019 г.

du и df показывают существенно отличающиеся числа

#linux


На сервере закончилось место, логи уже удалять бесполезно...

Работаю под root'ом.

Вылоплинл df -h:

Filesystem                                             Size  Used Avail Use% Mounted on
rootfs                                                  188G  177G  1.8G  99% /
udev                                                     10M     0   10M   0% /dev
tmpfs                                                   6.4G  292K  6.4G   1% /run
/dev/disk/by-uuid/47783a3f-1df3-4061-a4b9-42c53642ca6c  188G  177G  1.8G  99% /
tmpfs                                                   5.0M     0  5.0M   0% /run/lock
tmpfs                                                    20G  8.0K   20G   1% /run/shm
/dev/md1                                                496M   33M  438M   7% /boot


Затем сделал du -hd1a /, получилось:

125M    /lib
52K     /tmp
4.0K    /home
23M     /boot
584M    /opt
6.8M    /bin
8.3G    /var
4.0K    /mnt
2.4G    /usr
8.7M    /sbin
170M    /root
16K     /lost+found
216K    /log2ban
8.0K    /media
12K     /srv
0       /dev
4.0K    /lib64
300K    /run
0       /sys
du: cannot access /proc/14876/task/14876/ns/net': No such file or directory
* остальные du: cannot access удалены
0       /proc
4.0K    /selinux
5.8G    /etc
18G     /


Как видите, файлами занято 18 гигов, а блоками 177. 

Помогите понять, чем занято место, и решить проблему.
    


Ответы

Ответ 1



мой вольный перевод ответа: Why do “df” and “du” commands show different disk usage? вероятно, вы знаете, что можно удалить файл, который всё ещё используется каким-нибудь процессом, и он останется доступным для данного процесса. потому что остаётся открытым файловый дескриптор в псевдо-файловой системе proc (в /proc/номер-процесса/fd/), и пространство, занимаемое таким файлом, программа df считает используемым (и она права). а вот программа du не просуммирует это пространство, так как уже нет файлов, с ним ассоциированных. вы можете просмотреть информацию о таких удалённых, но всё ещё открытых файлах, например, так: $ sudo lsof | grep '(deleted)' и перезапустить те процессы, которые всё ещё используют удалённые файлы.

Комментариев нет:

Отправить комментарий