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