что делает “удаленный файл” запись, похожи в журнале

Можно использовать ldconfig -v | grep libraryname , также команда имеет опцию command -V или binaryfile --version

пример:

test@ubuntukrb12:~# ls --version
ls (GNU coreutils) 8.13
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

также можно использовать конфетку или способность на основе дистрибутива, который Вы используете, например.

в RHEL5/CENTOS5/Fedora можно использовать yum info packagename или если это установило затем использование rpm --version packagename

 [root@ldap1 ~]# yum info bind97
    Loaded plugins: downloadonly, fastestmirror, security
    Loading mirror speeds from cached hostfile
     * base: mirrors.sin3.sg.voxel.net
     * epel: mirror.imt-systems.com
     * extras: mirrors.sin3.sg.voxel.net
     * updates: mirrors.sin3.sg.voxel.net
    Installed Packages
    Name       : bind97
    Arch       : i386
    Epoch      : 32
    Version    : 9.7.0
    Release    : 10.P2.el5_8.4
    Size       : 6.3 M
    Repo       : installed
    Summary    : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server
    URL        : http://www.isc.org/products/BIND/
    License    : ISC
    Description: BIND (Berkeley Internet Name Domain) is an implementation of the DNS
               : (Domain Name System) protocols. BIND includes a DNS server (named),
               : which resolves host names to IP addresses; a resolver library
               : (routines for applications to use when interfacing with DNS); and
               : tools for verifying that the DNS server is operating properly.

В Ubuntu можно использовать aptitude show pkgname или dpkg --version pkgname

root@ubuntukrb12:~# aptitude show bind9utils
Package: bind9utils
State: installed
Automatically installed: yes
Version: 1:9.8.1.dfsg.P1-4ubuntu0.4
Priority: optional
Section: net
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Uncompressed Size: 306 k
Depends: libbind9-80, libc6 (>= 2.14), libdns81, libisc83, libisccc80, libisccfg82
Conflicts: bind9utils
Replaces: bind9 (<= 1:9.5.0~b2-1), bind9 (<= 1:9.5.0~b2-1)
Description: Utilities for BIND
 This package provides various utilities that are useful for maintaining a working BIND installation.
7
27.10.2015, 09:32
2 ответа

Когда файл или каталог "удален", его inode число удалено из каталога, который содержит файл. Вы видите список inodes, что данный каталог содержит использование tree команда.

Пример

$ tree -a -L 1 --inodes .
.
|-- [9571121]  dir1
|-- [9571204]  dir2
|-- [9571205]  dir3
|-- [9571206]  dir4
|-- [9571208]  dir5
|-- [9571090]  file1
|-- [9571091]  file2
|-- [9571092]  file3
|-- [9571093]  file4
`-- [9571120]  file5

5 directories, 5 files

Ссылки

Важно понять, как работают hardlinks. Это учебное руководство названо: Введение к Inodes имеет превосходные детали, если Вы только начинаете в попытке получить фундаментальное понимание того, как работают inodes.

выборка

Цифры Inode уникальны, но Вы, возможно, заметили, что некоторое имя файла и inode списки чисел действительно показывают некоторые файлы с тем же числом. Дублирование вызывается жесткими ссылками. Жесткие ссылки сделаны, когда файл копируется в нескольких каталогах. Тот же файл существует в различных каталогах на том же устройстве хранения данных. Каталог, перечисляющий, показывает два файла с тем же числом, которое связывает их с тем же медосмотром на te устройстве хранения данных. Жесткие ссылки позволяют, чтобы тот же файл "существовал" в нескольких каталогах, но только один физический файл существует. Свободное место затем оставлено на устройстве хранения данных. Например, если файл на один мегабайт помещается в два различных каталога, пространство, использованное на устройстве хранения данных, составляет один мегабайт, не два мегабайта.

Удаление

То же самое учебное руководство также сказало следующее о том, что происходит, когда inode удален.

Удаление файлов вызывает размер, и прямые/косвенные элементы блока обнуляются, и физическое пространство на устройстве хранения данных установлено как неиспользованное. Для восстановления после удаления файла метаданные восстанавливаются из Журнала, если это используется (см. Статью в журнале). После того как метаданные восстанавливаются, файл еще раз доступен, если физические данные не были перезаписаны на устройстве хранения данных.

Степени

Вы могли бы хотеть также повторить на степенях и как они работают. Снова от сайта linux.org, другого хорошего учебного руководства, названного: Степени помогут Вам свалить основы.

Можно использовать команду filefrag определить, сколько используют степени данный файл/каталог.

Примеры

$ filefrag dir1
dir1: 1 extent found

$ filefrag ~/VirtualBox\ VMs/CentOS6.3/CentOS6.3.vdi 
/home/saml/VirtualBox VMs/CentOS6.3/CentOS6.3.vdi: 5 extents found

Можно получить более подробный результат при помощи -v переключатель:

$ filefrag -v dir1
Filesystem type is: ef53
File size of dir1 is 4096 (1 block of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..       0:   38282243..  38282243:      1:             eof
dir1: 1 extent found

Примечание: Заметьте, что каталог всегда использует как минимум, 4K байты.

Предоставление файла некоторого размера

Мы можем взять один из наших файлов примера и записать 1 МБ данных к нему как это:

$ dd if=/dev/zero of=file1 bs=1k count=1k
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.00628147 s, 167 MB/s

$ ll | grep file1
-rw-rw-r--. 1 saml saml 1048576 Dec  9 20:03 file1

Если мы анализируем это использование файла filefrag:

$ filefrag -v file1
Filesystem type is: ef53
File size of file1 is 1048576 (256 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..     255:   35033088..  35033343:    256:             eof
file1: 1 extent found

Удаление и воссоздание файла быстро

Один интересный эксперимент, который можно сделать, должен создать файл, такой как file1 выше, и затем удаляют его и затем воссоздают его. Наблюдайте то, что происходит. Прямо после удаления файла, я повторно выполняюсь dd ... команда и file1 обнаруживается как это к filefrag команда:

$ filefrag -v file1
Filesystem type is: ef53
File size of file1 is 1048576 (256 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..     255:          0..       255:    256:             unknown,delalloc,eof
file1: 1 extent found

После небольшого количества времени (секунды к мелкой передаче):

$ filefrag -v file1
Filesystem type is: ef53
File size of file1 is 1048576 (256 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..     255:   38340864..  38341119:    256:             eof
file1: 1 extent found

Файл наконец обнаруживается. Я не совсем уверен, что продолжается здесь, но похоже, что это занимает время, чтобы состояние файла обосновалось между журналом и диском. Выполнение stat команды показывают файл с inode, таким образом, это там, но данные это filefrag использование не было разрешено так, мы находимся в чем-то вроде состояния неопределенности.

6
27.01.2020, 20:18
  • 1
    Ничто, что Вы упоминаете здесь, не имеет никакого отношения к журналу. То, что Вы видите с filefrag, является отложенной функцией выделения в действительности. Ядро не выделяет блоки, пока оно не идет для записи данных в диск. В то время, когда Вы выполняете filefrag, данные все еще находятся в кэше, таким образом, ядро не решило, куда это собирается поместить его все же. –  psusi 11.12.2013, 16:59
  • 2
    @psusi - Я знал, что танцевал вокруг фактических деталей, есть ли какой-либо способ посмотреть в Ядре для наблюдения большего количества положения дел? Я не нашел много в способе инструментов связанным с журналом. –  slm♦ 11.12.2013, 17:03

Удаление файла включает несколько шагов:

  1. Mark имя в каталоге, как удалено
  2. Постепенно уменьшите число каналов в inode
  3. Если число каналов является теперь нулем, установите удаленное время и
  4. Mark блоки данных как свободные в битовом массиве

Таким образом, журнал похож" на эту последовательность.

0
27.01.2020, 20:18

Теги

Похожие вопросы