Несоответствие в отображении занимаемого места df и du

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
DeatherT
проходил мимо
Сообщения: 7
Зарегистрирован: 2013-04-05 9:13:37

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение DeatherT » 2015-03-17 13:04:39

Добрый день!
После обновления через freebsd-update c 10.0 до 10.1 получилась непонятная для меня ситуация:

Код: Выделить всё

df -h
Filesystem      Size    Used   Avail Capacity  Mounted on
/dev/ada0s3a    139G     64G    65G    50%    /
devfs           1.0K    1.0K     0B   100%    /dev
procfs          4.0K    4.0K     0B   100%    /proc

du -hd1 /
4.0K    /.snap
2.5K    /dev
216M    /tmp
4.0K    /mnt
1.2M    /root
  0B    /proc
538M    /boot
3.9G    /var
7.7M    /rescue
 17G    /usr
1.2M    /bin
5.9M    /sbin
2.8M    /etc
4.0K    /media
9.3M    /lib
156K    /libexec
 21G    /
Стоит вместе с W7 на ноуте. Не хватает знаний, даже в какую сторону копать )) и Google не помог...
Прошу помощь зала )
Последний раз редактировалось f_andrey 2015-03-17 13:54:46, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

guest
проходил мимо

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение guest » 2015-03-17 17:45:14

DeatherT писал(а):Добрый день!
После обновления через freebsd-update c 10.0 до 10.1 получилась непонятная для меня ситуация:

Код: Выделить всё

df -h
Filesystem      Size    Used   Avail Capacity  Mounted on
/dev/ada0s3a    139G     64G    65G    50%    /
devfs           1.0K    1.0K     0B   100%    /dev
procfs          4.0K    4.0K     0B   100%    /proc

du -hd1 /
4.0K    /.snap
2.5K    /dev
216M    /tmp
4.0K    /mnt
1.2M    /root
  0B    /proc
538M    /boot
3.9G    /var
7.7M    /rescue
 17G    /usr
1.2M    /bin
5.9M    /sbin
2.8M    /etc
4.0K    /media
9.3M    /lib
156K    /libexec
 21G    /
Стоит вместе с W7 на ноуте. Не хватает знаний, даже в какую сторону копать )) и Google не помог...
Прошу помощь зала )
искать не пытались:
https://www.freebsd.org/doc/ru/books/fa ... dp73065040

DeatherT
проходил мимо
Сообщения: 7
Зарегистрирован: 2013-04-05 9:13:37

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение DeatherT » 2015-03-18 10:05:06

Если бы это было так просто, я бы не спрашивал...
Заметьте, что подсистема отложенных обновлений (Soft Updates) может задерживать освобождение дискового пространства; вам может потребоваться подождать до 30 секунд, прежде, чем изменения будут заметны!
В том то и вопрос, что проблеме более месяца и меня интересует процесс выравнивания значений, а не теоретические аспекты. И искал я именно как исправить, а не почему это произошло - это и так было понятно.

guest
проходил мимо

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение guest » 2015-03-18 11:14:23

DeatherT писал(а):Если бы это было так просто, я бы не спрашивал...
Заметьте, что подсистема отложенных обновлений (Soft Updates) может задерживать освобождение дискового пространства; вам может потребоваться подождать до 30 секунд, прежде, чем изменения будут заметны!
В том то и вопрос, что проблеме более месяца и меня интересует процесс выравнивания значений, а не теоретические аспекты. И искал я именно как исправить, а не почему это произошло - это и так было понятно.
когда человек знает и понимает ответ на вопрос, обычно, понимает как исправить.

SU - только часть о которой описано в FAQ, если проблема в write cache, то кеши сбрасываются
двойным выполнением:

# sync; sync

А вот если Вы удаляете файлы ОТКРЫТЫЕ другими приложениями, дескриптор остается и запись
в него продолжается, это касается и неверно настроенного newsyslog для вращения логов.

# man newsyslog.conf - два последних параметра "path_to_pid_cmd_file" и "signal_number"

ротация возможна лишь при переоткрытии демоном файла логгирования, by default это делается
сигналом SIGHUP, но есть демоны которые используют иной сигнал SIGUSR1.

DeatherT
проходил мимо
Сообщения: 7
Зарегистрирован: 2013-04-05 9:13:37

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение DeatherT » 2015-03-18 17:11:27

Благодарю за ответы. Последний, надеюсь, вопрос... )
В ситуации, когда выполняется удаление большого файла (например после выполнения portsclean) и процесс будет прерван до его завершения, запись о нём будет удалена, но файл фактически будет присутствовать на диске и будет учитываться df, каким инструментом можно воспользоваться для окончательного удаления файла?

guest
проходил мимо

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение guest » 2015-03-18 19:56:01

DeatherT писал(а):Благодарю за ответы. Последний, надеюсь, вопрос... )
В ситуации, когда выполняется удаление большого файла (например после выполнения portsclean) и процесс будет прерван до его завершения, запись о нём будет удалена, но файл фактически будет присутствовать на диске и будет учитываться df, каким инструментом можно воспользоваться для окончательного удаления файла?
не знаю как работает portsclean, если память не изменяет, написан на ruby и возможно использует
базу portupgrade'а...
Речь шла об удалении ОТКРЫТЫХ файлов, те - работает программа или демон, держат открытым файл/ы,
в который/е идет запись, вот при удалении таких файлов, дескрипторы остаются открытыми, запись
продолжается, а файлов нет, занимаемое место растет, отсюда df и du показывают разные данные,
ибо df - на уровне FS, а du - подсчет размеров файлов/директорий (разумеется, существующих)

Проблем с удалением файла не открытым на запись, быть не должно, он либо удален, либо нет и sync;sync
сразу поможет это определить, в остальном, утилита lsof или fstat - чтобы определить кто держит дескриптор
открытым и завершить или рестартовать. Файл удален, но дескриптор не освобжден - пока его кто-то держит.

DeatherT
проходил мимо
Сообщения: 7
Зарегистрирован: 2013-04-05 9:13:37

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение DeatherT » 2015-03-20 10:49:35

Насколько я понимаю, после перезагрузки дескриптор уже держать никто не должен?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение Alex Keda » 2015-03-20 12:29:04

Да
Убей их всех! Бог потом рассортирует...

DeatherT
проходил мимо
Сообщения: 7
Зарегистрирован: 2013-04-05 9:13:37

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение DeatherT » 2015-03-23 12:44:04

В том то и вопрос... Перезагрузки были, а место занято...

guest
проходил мимо

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение guest » 2015-03-23 16:24:37

DeatherT писал(а):В том то и вопрос... Перезагрузки были, а место занято...
в студию:

# df -h

# du -sh /
# for i in `ls /`; do du -sh /$i; done

DeatherT
проходил мимо
Сообщения: 7
Зарегистрирован: 2013-04-05 9:13:37

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение DeatherT » 2015-03-24 13:07:04

Код: Выделить всё

# df -h
Filesystem      Size    Used   Avail Capacity  Mounted on
/dev/ada0s3a    139G     64G     65G    50%    /
devfs           1.0K    1.0K      0B   100%    /dev
procfs          4.0K    4.0K      0B   100%    /proc

# du -sh /
 22G    /

# for i in `ls /`; do du -sh /$i; done
4.0K    /.cshrc
4.0K    /.profile
4.0K    /.rnd
4.0K    /.snap
 32M    /.sujournal
8.0K    /COPYRIGHT
 27M    /Xorg.core
1.2M    /bin
538M    /boot
2.5K    /dev
4.0K    /entropy
2.8M    /etc
  0B    /home
9.3M    /lib
156K    /libexec
4.0K    /media
4.0K    /mnt
  0B    /proc
7.7M    /rescue
1.2M    /root
5.9M    /sbin
  0B    /sys
216M    /tmp
 17G    /usr
3.9G    /var

guest
проходил мимо

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение guest » 2015-03-24 13:27:20

DeatherT писал(а):

Код: Выделить всё

# df -h
Filesystem      Size    Used   Avail Capacity  Mounted on
/dev/ada0s3a    139G     64G     65G    50%    /
devfs           1.0K    1.0K      0B   100%    /dev
procfs          4.0K    4.0K      0B   100%    /proc

# du -sh /
 22G    /

# for i in `ls /`; do du -sh /$i; done
...
 17G    /usr
3.9G    /var
теперь тоже самое в single-user mode:

# shutdown -r now
- выбираете загрузку в single-user: 2. Boot Single user (нажать 2)
...
Enter full path name or RETURN for /bin/sh: (нажимаете Enter)
и попадаете в командную строку:

# mount
покажет что корень смонтирован в read-only
/dev/ada0s3a on / (ufs,local,read-only)

- выполняете fsck:

# fsck_ffs -fy /dev/ada0s3a
# mount -w /

далее выполняете команды df/du и в дополнение:

# camcontrol devlist
# gpart show ada0
# cat /etc/rc.conf

результат в студию

чтобы залоггировать вывод команд, можно использовать утилиту script:

# /usr/bin/script /tmp/my.log
теперь можем набирать и выполнять команды, их работа будет писаться в /tmp/my.log
# df -h
# du -sh /
...
# exit (выход из утилиты script и режима логгирования)

выход из single-user mode и продолжение загрузки в multiuser - CTRL-D или reboot

DeatherT
проходил мимо
Сообщения: 7
Зарегистрирован: 2013-04-05 9:13:37

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение DeatherT » 2015-03-24 14:25:10

Спасибо. fsck_ffs -fy /dev/ada0s3a помогло, хотя до этого делал просто fsck -f и почему то не помогло... )

Код: Выделить всё

# df -h
Filesystem      Size    Used   Avail Capacity  Mounted on
/dev/ada0s3a    139G     22G    107G    17%    /
devfs           1.0K    1.0K      0B   100%    /dev
procfs          4.0K    4.0K      0B   100%    /proc

# du -sh /
 22G    /

# for i in `ls /`; do du -sh /$i; done
4.0K    /.cshrc
4.0K    /.profile
4.0K    /.rnd
4.0K    /.snap
 32M    /.sujournal
8.0K    /COPYRIGHT
 27M    /Xorg.core
1.2M    /bin
538M    /boot
2.5K    /dev
4.0K    /entropy
2.8M    /etc
  0B    /home
9.3M    /lib
156K    /libexec
4.0K    /media
4.0K    /mnt
  0B    /proc
7.7M    /rescue
1.2M    /root
5.9M    /sbin
  0B    /sys
216M    /tmp
 17G    /usr
3.9G    /var

# camcontrol devlist
<WDC WD3200BEVT-80A0RT0 01.01A01>  at scbus0 target 0 lun 0 (ada0,pass0)
<MATSHITA DVD-RAM UJ-850 RB01>     at scbus1 target 0 lun 0 (cd0,pass1)

# gpart show ada0
=>       63  625142385  ada0  MBR  (298G)
         63       1985        - free -  (993K)
       2048     204800     1  ntfs  (100M)
     206848  315596800     2  ntfs  (150G)
  315803648         43        - free -  (22K)
  315803691  309338694     3  freebsd  [active]  (148G)
  625142385         63        - free -  (32K)

# cat /etc/rc.conf
hostname="NoteBook"
keymap="ru.koi8-r.kbd"
ifconfig_bge0="DHCP"
sshd_enable="YES"
moused_enable="YES"
ntpd_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="NO"
hald_enable="YES"
dbus_enable="YES"
kdm4_enable="YES"
wlans_wpi0="wlan0"
ifconfig_wlan0="WPA DHCP"

guest
проходил мимо

Несоответствие в отображении занимаемого места df и du

Непрочитанное сообщение guest » 2015-03-24 16:28:09

DeatherT писал(а):Спасибо. fsck_ffs -fy /dev/ada0s3a помогло, хотя до этого делал просто fsck -f и почему то не помогло... )
в /etc/rc.conf добавьте:

#-- forced fsck-y
fsck_y_enable="YES"
#-- disable background fsck
background_fsck="NO"