|
|||||||
Какую информацию о времени изменения файла можно получить в Linux на файловой системе extX
Время создания: 10.03.2017 09:53
Автор: Xintrea
Текстовые метки: linux, ext, файловая система, время, дата, файл, создание, изменение, удаление, модификация
Раздел: Компьютер - Linux - Bash - Команды и скрипты
Запись: xintrea/mytetra_syncro/master/base/1489128820sk4aytiw9x/text.html на raw.github.com
|
|||||||
|
|||||||
Исторически так сложилось, что man-страница команды ls и встроенная помощь по команде ls --help не содержат сведений о том, как посмотреть разные времена действий с файлами. Точнее, сведения эти неполные. На файловой системе extX (где X- это число) обычно хранится следующая временная информация:
Однако документация на ls говорит, что можно получить следующие сведения: --time=WORD with -l, show time as WORD instead of default modification time: atime or access or use (-u) ctime or status (-c); also use specified time as sort key if --sort=time Отсюда мы имеем, что mtime (время модификации) отображается в команде ls -l по-умолчанию: # ls -l drwxr-xr-x 2 www-data www-data 4096 May 1 2016 helpers -rw-rw-rw- 1 www-data www-data 5871 May 1 2016 Plugin_Articles.php -rw-rw-rw- 1 www-data www-data 241 Sep 3 2010 Plugin_Empty.php -rw-rw-rw- 1 www-data www-data 3077 May 1 2016 Plugin_Gallery.php -rw-rw-rw- 1 www-data www-data 10318 Apr 30 2016 Plugin_Guestbook_Captcha.php -rw-rw-rw- 1 www-data www-data 12054 Mar 7 14:06 Plugin_Guestbook.php Время последнего доступа к файлу/каталогу atime можно посмотреть командой: # ls -l --time=atime drwxr-xr-x 2 www-data www-data 4096 Mar 9 05:02 helpers -rw-rw-rw- 1 www-data www-data 5871 Mar 9 05:02 Plugin_Articles.php -rw-rw-rw- 1 www-data www-data 241 Mar 9 05:02 Plugin_Empty.php -rw-rw-rw- 1 www-data www-data 3077 Mar 9 05:02 Plugin_Gallery.php -rw-rw-rw- 1 www-data www-data 10318 Mar 9 05:02 Plugin_Guestbook_Captcha.php -rw-rw-rw- 1 www-data www-data 12054 Mar 9 05:02 Plugin_Guestbook.php Здесь видно, что срабатывало ночное архивирование в 5:02. А если просто открыть один файл на просмотр, то после такого действия получим: # ls -l --time=atime drwxr-xr-x 2 www-data www-data 4096 Mar 9 05:02 helpers -rw-rw-rw- 1 www-data www-data 5871 Mar 10 10:31 Plugin_Articles.php -rw-rw-rw- 1 www-data www-data 241 Mar 9 05:02 Plugin_Empty.php -rw-rw-rw- 1 www-data www-data 3077 Mar 9 05:02 Plugin_Gallery.php -rw-rw-rw- 1 www-data www-data 10318 Mar 9 05:02 Plugin_Guestbook_Captcha.php -rw-rw-rw- 1 www-data www-data 12054 Mar 9 05:02 Plugin_Guestbook.php Время последнего изменения атрибутов файла/каталога (изменений в inode) ctime узнается так: # ls -l --time=ctime drwxr-xr-x 2 www-data www-data 4096 May 8 2016 helpers -rw-rw-rw- 1 www-data www-data 5871 May 8 2016 Plugin_Articles.php -rw-rw-rw- 1 www-data www-data 241 May 8 2016 Plugin_Empty.php -rw-rw-rw- 1 www-data www-data 3077 May 8 2016 Plugin_Gallery.php -rw-rw-rw- 1 www-data www-data 10318 May 8 2016 Plugin_Guestbook_Captcha.php -rw-rw-rw- 1 www-data www-data 12054 Mar 7 14:06 Plugin_Guestbook.php Но у нас еще остались crtime и dtime. Как их узнать? Можно попробовать команду: # ls -l --time=crtime ls: invalid argument ‘crtime’ for ‘--time’ Valid arguments are: - ‘atime’, ‘access’, ‘use’ - ‘ctime’, ‘status’ Ошибка. Но вот что интересно. Оказывается, команда ls поддерживает не только atime, ctime и mtime (по умолчнию). Есть еще какие-то загадочные access, use, status. И что они обозначают, в документации ls не написано. И кроме того, непонятно как посмотреть crtime и dtime. Долгие ковыряния в интернете показали, что, в Linux все очень запутано. Например, в ext3 время создания crtime вообще не хранится. А в ext4 хранится, но его невозможно напрямую посмотреть через ls. Для ext4 рекомендуют применять следующий трюк: 1. Узнать номер i-ноды файла через опцию -i, например: # ls -il 385631 drwxr-xr-x 2 www-data www-data 4096 May 1 2016 helpers 385633 -rw-rw-rw- 1 www-data www-data 5871 May 1 2016 Plugin_Articles.php 385634 -rw-rw-rw- 1 www-data www-data 241 Sep 3 2010 Plugin_Empty.php 385629 -rw-rw-rw- 1 www-data www-data 3077 May 1 2016 Plugin_Gallery.php 385638 -rw-rw-rw- 1 www-data www-data 10318 Apr 30 2016 Plugin_Guestbook_Captcha.php 385637 -rw-rw-rw- 1 www-data www-data 12054 Mar 7 14:06 Plugin_Guestbook.php 2. Найти информацию об i-ноде данного файла: # debugfs -R 'stat <385633>' /dev/sda1 Inode: 385633 Type: regular Mode: 0666 Flags: 0x80000 Generation: 3970661518 Version: 0x00000000:00000001 User: 33 Group: 33 Size: 5871 File ACL: 0 Directory ACL: 0 Links: 1 Blockcount: 16 Fragment: Address: 0 Number: 0 Size: 0 ctime: 0x572f7053:875a9d88 -- Sun May 8 19:58:59 2016 atime: 0x58c25640:80cad680 -- Fri Mar 10 10:31:12 2017 mtime: 0x57260da3:00000000 -- Sun May 1 17:07:31 2016 crtime: 0x572f6fa8:65ca9a70 -- Sun May 8 19:56:08 2016 Size of extra inode fields: 28 EXTENTS: (0-1):1632746-1632747 Да, номер ноды вот так, с угловыми скобками, и надо писать. В полученной информации видно время crtime. И что интересно, оно почти совпадает с временем ctime. Почему оно совпадает? Потому что с момента создания файла никакие атрибуты файла не менялись. Почему почти совпадает? Могу предположить, что при копировании файлов файлы сначала копируются, а потом им назначаются атрибуты или устанавливается содержимое. Вот, например, какое время у файла /etc/networks: ctime: 0x56a233b8:3ac960a0 -- Fri Jan 22 16:50:48 2016 atime: 0x58c264eb:43bd7fb8 -- Fri Mar 10 11:33:47 2017 mtime: 0x56a233b8:3ac960a0 -- Fri Jan 22 16:50:48 2016 crtime: 0x56a233b0:54892ca0 -- Fri Jan 22 16:50:40 2016 Здесь видно, что время создания crtime - самое первое на временной шкале. Остальные времена отличаются на секунды. Теперь, если поменять, например, права доступа файла Plugin_Articles.php, то можно увидеть: Inode: 385633 Type: regular Mode: 0755 Flags: 0x80000 Generation: 3970661518 Version: 0x00000000:00000001 User: 33 Group: 33 Size: 5871 File ACL: 0 Directory ACL: 0 Links: 1 Blockcount: 16 Fragment: Address: 0 Number: 0 Size: 0 ctime: 0x58c262ee:19ffcde0 -- Fri Mar 10 11:25:18 2017 atime: 0x58c25640:80cad680 -- Fri Mar 10 10:31:12 2017 mtime: 0x57260da3:00000000 -- Sun May 1 17:07:31 2016 crtime: 0x572f6fa8:65ca9a70 -- Sun May 8 19:56:08 2016 Size of extra inode fields: 28 EXTENTS: (0-1):1632746-1632747 Теперь crtime и ctime содержат совсем разные даты. Так и должно быть. Хинт! Можно не долбаться с i-node, а воспользоваться просто именем файла в команде debugfs: debugfs -R 'stat /home/user/file1' /dev/sda1 Ищем параметр crtime - это и есть дата создания файла. Остался вопрос по dtime. Для того чтобы узнать дату удаления файла нужно знать inod удаленного файла. Все, в принципе, уже делали выше по тексту: 1. смотрим номер inode (первая цифра) ls -li /home/user/file1 2. удаляем файл rm /home/user/file1 3. Указываем inode вместо имени файла sudo debugfs -R 'stat <659471>' /dev/sda1 И видим что появился еще один параметр dtime который указывает время удаления файла. Заключение И напоследок, полезная команда: stat * Эта команда, как и ls, выведет информацию о файлах в текущем каталоге. Но информация будет очень полной: $ stat * Файл: «install» Размер: 4096 Блоков: 8 Блок В/В: 4096 каталог Устройство: fe01h/65025d Inode: 18093704 Ссылки: 4 Доступ: (0755/drwxr-xr-x) Uid: ( 1000/ xi) Gid: ( 1000/ xi) Доступ: 2016-11-11 08:40:14.304086738 +0300 Модифицирован: 2016-10-27 13:58:58.471802462 +0300 Изменён: 2016-10-27 13:58:58.471802462 +0300 Создан: - Файл: «misc» Размер: 4096 Блоков: 8 Блок В/В: 4096 каталог Устройство: fe01h/65025d Inode: 18351666 Ссылки: 4 Доступ: (0755/drwxr-xr-x) Uid: ( 1000/ xi) Gid: ( 1000/ xi) Доступ: 2017-02-27 15:11:57.919149521 +0300 Модифицирован: 2017-02-27 15:11:57.919149521 +0300 Изменён: 2017-02-27 15:11:57.919149521 +0300 Создан: - Файл: «text» Размер: 4096 Блоков: 8 Блок В/В: 4096 каталог Устройство: fe01h/65025d Inode: 17172618 Ссылки: 5 Доступ: (0755/drwxr-xr-x) Uid: ( 1000/ xi) Gid: ( 1000/ xi) Доступ: 2016-11-11 08:40:12.408086752 +0300 Модифицирован: 2016-09-22 16:14:05.691297459 +0300 Изменён: 2016-10-27 13:58:38.595791445 +0300 Создан: - Файл: «x2go_repository» Размер: 4096 Блоков: 8 Блок В/В: 4096 каталог Устройство: fe01h/65025d Inode: 17041798 Ссылки: 4 Доступ: (2755/drwxr-sr-x) Uid: ( 1000/ xi) Gid: ( 1000/ xi) Доступ: 2017-03-10 16:47:48.141500240 +0300 Модифицирован: 2011-04-25 18:50:52.000000000 +0400 Изменён: 2016-10-27 13:58:38.723791516 +0300 Создан: - |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|