Несоответствие между df и du

У меня есть вопрос, относящийся к отличию от «df -h» и «du -bs». Я видел здесь несколько вопросов, но проблема заключалась в том, что «df -h» сообщал о более используемом пространстве, чем «du -bs». У меня противоположная проблема:

 [Root @ CDPPRIM01 oracle-dbf] # du -bs
 336178610176.

 [Root @ CDPPRIM01 datafiles] # df -h |  Grep dbf
 / Dev / sda2 360G 272G 85G 77% / opt / oracle-dbf

 [Root @ CDPPRIM01 datafiles] # ls -la
 Всего 284550000
 Drwxrwxr-x 2 oracle oinstall 4096 9 апр 14:13.
 Drwxr-xr-x 4 корень root 4096 3 апреля 10:33 ..
 -rw-r ----- 1 oracle dba 9748480 апр. 11 17:01 control01.ctl
 -rw-r ----- 1 oracle dba 9748480 апр. 11 17:01 control02.ctl
 -rw-r ----- 1 oracle dba 968892416 Apr 11 16:20 pn310_admin_DATA22.dbf
 -rw-r ----- 1 oracle dba 104865792 Apr 11 16:20 pn310_admin_DATA.dbf
 -rw-r ----- 1 oracle dba 32212262912 Apr 11 16:20 pn310_DATA11.dbf
 -rw-r ----- 1 oracle dba 32212262912 Апр. 11 17:00 pn310_DATA12.dbf
 -rw-r ----- 1 oracle dba 32212262912 Apr 11 17:00 pn310_DATA13.dbf
 -rw-r ----- 1 oracle dba 32212262912 Apr 11 16:20 pn310_DATA14.dbf
 -rw-r ----- 1 oracle dba 5242888192 апр. 11 17:01 pn310_DATA15.dbf
 -rw-r ----- 1 oracle dba 1073750016 11 апреля 17:00 pn310_DATA.dbf
 -rw-r ----- 1 oracle dba 5798633472 Apr 11 16:20 pn310_dwe_DATA20.dbf
 -rw-r ----- 1 oracle dba 1073750016 Апр 11 16:20 pn310_dwe_DATA.dbf
 -rw-r ----- 1 oracle dba 104865792 3 апр 10:42 pn310_dwe_TEMP.dbf
 -rw-r ----- 1 oracle dba 5263859712 Apr 3 11:28 pn310_dwe_temp_TEMP9.dbf
 -rw-r ----- 1 oracle dba 32212262912 Apr 11 16:20 pn310_ep_DATA16.dbf
 -rw-r ----- 1 oracle dba 32212262912 Apr 11 16:20 pn310_ep_DATA17.dbf
 -rw-r ----- 1 oracle dba 32212262912 Apr 11 16:20 pn310_ep_DATA18.dbf
 -rw-r ----- 1 oracle dba 9437192192 Апр. 11 16:20 pn310_ep_DATA19.dbf
 -rw-r ----- 1 oracle dba 1073750016 Апр. 11 16:50 pn310_ep_DATA.dbf
 -rw-r ----- 1 oracle dba 104865792 3 апр 10:42 pn310_ep_TEMP.dbf
 -rw-r ----- 1 oracle dba 16001277952 апр. 3 11:27 pn310_ep_temp_TEMP8.dbf
 -rw-r ----- 1 oracle dba 104865792 11 апреля 06:00 pn310_TEMP.dbf
 -rw-r ----- 1 oracle dba 16001277952 апр 11 17:01 pn310_temp_TEMP7.dbf
 -rw-r ----- 1 oracle dba 11811168256 Apr 11 16:51 pn310_xmp_DATA21.dbf
 -rw-r ----- 1 oracle dba 1073750016 11 апреля 17:00 pn310_xmp_DATA.dbf
 -rw-r ----- 1 oracle dba 104865792 3 апр 10:42 pn310_xmp_TEMP.dbf
 -rw-r ----- 1 oracle dba 2042634240 апр. 3 11:29 pn310_xmp_temp_TEMP10.dbf
 -rw-r ----- 1 oracle dba 566239232 11 апр 17:00 sysaux01.dbf
 -rw-r ----- 1 oracle dba 4802486272 Апр 11 16:57 sysaux_DATA24.dbf
 -rw-r ----- 1 oracle dba 754982912 Апр. 11 16:58 system01.dbf
 -rw-r ----- 1 oracle dba 4613742592 Апр. 11 17:00 system_DATA23.dbf
 -rw-r ----- 1 oracle dba 1073750016 Апр. 10 23:07 temp01.dbf
 -rw-r ----- 1 oracle dba 1073750016 3 апр 10:38 temp02.dbf
 -rw-r ----- 1 oracle dba 3221233664 Apr 3 11:31 temp_TEMP11.dbf
 -rw-r ----- 1 oracle dba 1073750016 11 апр 17:01 undotbs01.dbf
 -rw-r ----- 1 oracle dba 1073750016 11 апреля 17:00 undotbs02.dbf
 -rw-r ----- 1 oracle dba 13958651904 Apr 11 17:01 undotbs1_DATA26.dbf
 -rw-r ----- 1 oracle dba 5251072 Apr 11 16:20 users01.dbf
 -rw-r ----- 1 oracle dba 1068507136 Apr 11 16:20 users_DATA25.dbf

Добавив все файлы, мы получаем 336178593792, что в GB равно: 336178593792/1024/1024/1024 = 313GB, что больше, чем 272GB, о которых сообщает 'df -h'.

  • Почему раздел может отображаться в `mount`, но не` df`?
  • Что-то не так с моим дисковым разделом?
  • Как анализировать использование диска в командной строке linux?
  • Я уже сделал umount и fsck, чтобы проверить раздел, и он чист. Кто-нибудь знает, что может быть причиной такого поведения?

  • Как я могу передать Root Password в скрипт
  • Конечный процесс и конечное дерево процессов
  • SSH туннель через два сервера для доступа к веб-службе на порту 9091
  • Я хотел установить arch linux в системе UEFI / GPT и имел вопросы о процессе
  • Firefox думает, что я использую и устарел Flash-версию
  • Пакетное переименование файлов в каталоге с помощью sed
  • 2 Solutions collect form web for “Несоответствие между df и du”

    Одна из возможностей – редкие файлы . Если большие части данного файла не содержат данных, физическим блокам не нужно выделять эти части файла, предполагая, что ОС и файловая система поддерживают его.

    Чтобы проверить разреженные файлы, используйте invoke ls с помощью переключателей -s (занимаемое место на жестком диске) и -k (размеры показов в блоках кибибайта).

    Пример вывода:

     $ df -H /dev/sda1 Filesystem Size Used Avail Use% Mounted on /dev/sda1 118G 38G 75G 34% / $ $ dd if=/dev/zero of=1GB-normal bs=1GB count=1 # normal file (1 GB) $ $ df -H /dev/sda1 Filesystem Size Used Avail Use% Mounted on /dev/sda1 119G 38G 75G 34% / $ $ dd if=/dev/zero of=1GB-sparse bs=1GB count=0 seek=1GB # sparse file (1 GB) $ $ df -H /dev/sda1 Filesystem Size Used Avail Use% Mounted on /dev/sda1 119G 38G 75G 34% / $ $ ls -lks total 976568 976568 -rw-rw-r-- 1 dennis dennis 976563 Apr 11 13:05 1GB-normal 0 -rw-rw-r-- 1 dennis dennis 976563 Apr 11 13:06 1GB-sparse 

    Поскольку разреженный файл занимает (почти) физическое пространство на диске, вывод df не изменяется после его создания.

    Я не совсем уверен, что здесь происходит, но я могу дать вам несколько указателей.

    1. du -b подразумевает --apparent-size . На странице du man:

       --apparent-size print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due to holes in (`sparse') files, internal fragmentation, indirect blocks, and the like -b, --bytes equivalent to `--apparent-size --block-size=1' 
    2. Я не уверен, как оракул имеет дело с файлами базы данных, но меня это не удивило бы, если бы некоторые из них были очень скудными. Я думаю, что это самая вероятная причина, см. Здесь обсуждение того, как это может повлиять на du .

    3. На этой странице есть хорошее объяснение некоторых различий между способами, которыми две программы вычисляют использование диска.

    4. Некоторая более релевантная информация с страницы руководства df :

       -h, --human-readable print sizes in human readable format (eg, 1K 234M 2G) Display values are in units of the first available SIZE from --block-size, and the DF_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment variables. Otherwise, units default to 1024 bytes (or 512 if POSIXLY_CORRECT is set). SIZE may be (or may be an integer optionally followed by) one of following: KB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y. 
    Давайте будем гением компьютера.