The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Различный результат du на разных ОС"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на рабочей станции (Разное / Другая система)
Изначальное сообщение [ Отслеживать ]

"Различный результат du на разных ОС"  –1 +/
Сообщение от Азимут (ok) on 31-Июл-15, 16:05 
Есть две машинки, на одной (бекап) стоит readyNAS(1). На второй nas4free(2).
Когда-то readyNAS(1) была забекаплена куча файлов. Теперь их нужно переложить на nas4free(2).
Делал я это частями и разными способами. Да еще была проблема: на (1) оказались некоторые файлы, у которых при копировании на (2) не было прав на чтение. Соответственно они не были скопированы. Я исправил права (выдал полные) и использовал rsync для повторной синхронизации.

На (1) есть несколько подпапок. Для копирования на (2) использую комманды вида:
rsync -vur -compress-level=9  -e "ssh -p 9999" linux_home/ root@234.343.234.343:/mnt/Pool/data/linux_home/

Затем делаю du -s linux_home/ на обоих машинах и получаю разный результат, причем на источнике (1) объем меньше, чем на назначении (2).

(1)
#du -s linux_home/
3749968    linux_home/

du -s linux_home/*
1656712    linux_home/dev
8    linux_home/For_work.txt
76480    linux_home/home from acer
4    linux_home/netsol.txt
1563860    linux_home/progs
4    linux_home/route.txt
12    linux_home/sketchbook
4    linux_home/war.bash
452848    linux_home/work
4    linux_home/мегафон инет

(2)
# du -s linux_home/
3972005    linux_home/

du -s linux_home/*
1789956    linux_home/dev
11    linux_home/For_work.txt
89501    linux_home/home from acer
6    linux_home/netsol.txt
1631179    linux_home/progs
6    linux_home/route.txt
28    linux_home/sketchbook
6    linux_home/war.bash
461250    linux_home/work
6    linux_home/мегафон инет

Например файл
ls -l linux_home/route.txt
-rwxrwxrwx  1 1012  wheel  45 Jul 31 12:00 linux_home/route.txt

на обоих машинах одинаковой длинны, но все равно не той, что говорит du.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Различный результат du на разных ОС"  +/
Сообщение от fail on 31-Июл-15, 17:35 
по стеку от софта к железy...


man fstat
...
      They all return a stat structure, which contains the following fields:

              struct stat {
                  dev_t         st_dev;      /* device */
                  ino_t         st_ino;      /* inode */
                  mode_t        st_mode;     /* protection */
                  nlink_t       st_nlink;    /* number of hard links */
                  uid_t         st_uid;      /* user ID of owner */
                  gid_t         st_gid;      /* group ID of owner */
                  dev_t         st_rdev;     /* device type (if inode device) */
                  off_t         st_size;     /* total size, in bytes */
                  blksize_t     st_blksize;  /* blocksize for filesystem I/O */
                  blkcnt_t      st_blocks;   /* number of blocks allocated */
                  time_t        st_atime;    /* time of last access */
                  time_t        st_mtime;    /* time of last modification */
                  time_t        st_ctime;    /* time of last status change */
              };

       The  value  st_size  gives  the  size  of the file (if it is a regular file or a symlink) in bytes. The size of a symlink is the length of the pathname  it  contains,  without  trailing NUL.

       The  value  st_blocks  gives  the size of the file in 512-byte blocks.  (This may be smaller than st_size/512 e.g. when the file has holes.)  The value st_blksize gives the  "preferred" blocksize  for efficient file system I/O.  (Writing to a file in smaller chunks may cause an inefficient read-modify-rewrite.)

...

внимательно изyчается на предмет содержимого "size"

+

и также, например man mkfs.ext3

...

       -b block-size
              Specify the size of blocks in bytes.  Valid block-size values are 1024, 2048 and 4096 bytes  per block.  If omitted, block-size is heuristically determined by the filesys- tem size and the expected usage of the filesystem (see the -T option).  If block-size is negative, then mke2fs will use heuristics to determine the appropriate block size, with the constraint that the block size will be at least block-size bytes.   This  is useful for certain hardware devices which require that the blocksize be a multiple of 2k

...

думается, находятся ответы...

P.S.:
тоже подобный вопрос давно мучал

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Различный результат du на разных ОС"  –1 +/
Сообщение от Азимут (ok) on 31-Июл-15, 17:59 
> по стеку от софта к железy...

Очень интересно. А есть какой-то другой способ, кроме использования калькурятора, чтобы сравнить объем папок в независимости от железа?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Различный результат du на разных ОС"  +/
Сообщение от fail on 31-Июл-15, 18:26 
>> по стеку от софта к железy...
> Очень интересно. А есть какой-то другой способ, кроме использования калькурятора, чтобы
> сравнить объем папок в независимости от железа?

скриптинг на шелле - авто-калькуляция и прочие стюардесы с шашечками..

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Различный результат du на разных ОС"  +/
Сообщение от Square1 on 31-Июл-15, 18:45 
>> по стеку от софта к железy...
> Очень интересно. А есть какой-то другой способ, кроме использования калькурятора, чтобы
> сравнить объем папок в независимости от железа?

Считайте в байтах

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Различный результат du на разных ОС"  +/
Сообщение от Азимут (ok) on 01-Авг-15, 03:08 
>>> по стеку от софта к железy...
>> Очень интересно. А есть какой-то другой способ, кроме использования калькурятора, чтобы
>> сравнить объем папок в независимости от железа?
> Считайте в байтах

-b как раз выводит реальный размер файла, значит подойдет и для папок. Вот только в версии nas4free нет такого ключика :)

du -s -b linux_home/route.txt
du: illegal option -- b
usage: du [-Aclnx] [-H | -L | -P] [-h | -k | -m ] [-a | -s | -d depth] [-B blocksize] [-I mask] [-t threshold] [file ...]

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Различный результат du на разных ОС"  +/
Сообщение от Etch on 01-Авг-15, 07:08 

       --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, --block-size=SIZE
              scale sizes by SIZE before printing them.  E.g., '-BM' prints sizes in units of 1,048,576 bytes.  See SIZE format below.

       -b, --bytes
              equivalent to '--apparent-size --block-size=1'


Можно попробовать du -s -A -B 1 linux_home/route.txt (если '-A' == '--apparent-size', то должно сработать).
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Различный результат du на разных ОС"  +/
Сообщение от pavlinux (ok) on 02-Авг-15, 16:34 
>> по стеку от софта к железy...
> Очень интересно. А есть какой-то другой способ, кроме использования калькурятора, чтобы
> сравнить объем папок в независимости от железа?

export LC_MESSAGES=C; find ./  -exec dd if={} of=/dev/null \; 2>&1 | tee | grep copied | awk '{s+=$1} END {print s}';


# cd /usr/share/doc
root@amd64:/usr/share/doc# du -sb ./
286770179       ./
root@amd64:/usr/share/doc# export LC_MESSAGES=C; find ./  -exec dd if={} of=/dev/null \; 2>&1 | tee | grep copied | awk '{s+=$1} END {print s}';
292217474

292217474-286770179 = 5.447.295

5 мегов du проёб....ет.

---

А ваще, размер файла и занимаемое место на диске это разные вещи.
Журналируемая ФС добавляет от 1 до 15% к размеру.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру