В рамках нашей работы сегодня начальник решил проверить создание копий экрана (сделали, что по нажатию PrtScr в каталоге ./Images/ сохраняется "снимок" экрана)
И вот я нажимаю PrtScr, затем смотрю, что в каталоге и вижу, что у файла время 0:44. Удивляюсь, но вспоминаю, что при установке системы я не задал часовой пояс (из-за проблем с отображением кириллицы). Вызываю dpkg-reconfigure tzdata, ставлю Минск. И вижу, что у файла стало время 9:44. Но тут у начальника возникает "законный" вопрос: "Получается, что время файла зависит от часового пояса? Но это же неправильно!"
Дальше ещё интереснее. Копирую этот файл на флешку, на разделы ext3 и FAT32. Время на обоих разделах -- 9:44.
Копирую этот файл на ещё одну флешку (с FAT32). Идём на компьютер с Windows, вставляем флешку -- у файла 6:44.
Более того, на той флешке, где на разделе FAT32 на рабочем компьютере показывалось время 9:44, на моём компьютере (с Linux) показывается время тоже 6:44
Начальнику это очень не нравится. Говорит, что невозможно понять, когда на самом деле был сзелан снимок экрана.
Но что для меня непонятно, так это то, что на МОЁМ компьютере на флешке FAT32 у файла показывается время 6:44, а на рабочем -- 9:44. Хотя часовой пояст и там и там стоит +0300.
Для поверки в 12:52 создал маленький файл. Пошёл на компьютер с АРМом -- mc время не показывает, показывает только дату. Команда ls --full-time показала, что у этого файла время 2017-04-26 15:52:30.000000000 +0300
Как хранится время создания файла в разных ФС?
Модератор: Bizdelnick
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Как хранится время создания файла в разных ФС?
У файла ничего не "становится" и не меняется. Меняется только то, в каком виде время отображается.
Shell
Код: Выделить всё
% touch file
% date -r file
Ср апр 26 13:12:26 MSK 2017
% date -ur file
Ср апр 26 10:12:26 UTC 2017
% date -r file +%s
1493201546
$
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Как хранится время создания файла в разных ФС?
Bizdelnick писал(а): ↑26.04.2017 13:16
У файла ничего не "становится" и не меняется. Меняется только то, в каком виде время отображается.
Я это понимаю. И основная моя задача сейчас -- понять, почему на моём компьютере время этого файла отображеется как 6:44, а на компьютере АРМа -- как 9:44.
То есть я предполагаю, что это из-за того, что, устанавливая Linux я когда-то, вероятно, указал использовать текущее время, а не UTC, так как на нём стоит ещё винда (иногда вынужден ею пользоваться). Но как проверить это я не знаю. Собираюсь в мае поставить Jessie (если не выйдет Stretch, сейчас стоит Wheezy). Тогда буду это знать точно.
Ну и второе -- как убедить начальника, что в том, что в отображении времени создания файла в зависимости от текущего часового пояся ничего плохого нет. Тем более, что время создания файла входит в его имя.
Подозреваю, что винда будет отображать время в UTC.
Re: Как хранится время создания файла в разных ФС?
Чтобы научить Винду работать с UTC, есть такой ключик реестра:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001
Спасибо сказали:
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Как хранится время создания файла в разных ФС?
Какое время используют аппаратные часы — не имеет никакого значения.
Используйте для работы со временем секунды с начала эпохи.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Как хранится время создания файла в разных ФС?
MiK13 писал(а): ↑26.04.2017 13:05Но что для меня непонятно, так это то, что на МОЁМ компьютере на флешке FAT32 у файла показывается время 6:44, а на рабочем -- 9:44. Хотя часовой пояст и там и там стоит +0300.
Для поверки в 12:52 создал маленький файл. Пошёл на компьютер с АРМом -- mc время не показывает, показывает только дату. Команда ls --full-time показала, что у этого файла время 2017-04-26 15:52:30.000000000 +0300
Это говорит о том, что на Вашем компьютере время настроено неправильно — выставлен часовой пояс UTC, но при этом часы используют UTC+3. Это может быть следствием сочетания двух ошибок: неправильная установка часового пояса (UTC вместо UTC+3) и неправильная интерпретация показаний аппаратных часов (как если бы они были выставлены по UTC, хотя по факту там локальное время). Первое лечится dpkg-reconfigure tzdata, второе — echo 'HWCLOCKPARS=--localtime' >> /etc/default/hwclock.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Как хранится время создания файла в разных ФС?
Bizdelnick писал(а): ↑26.04.2017 23:18MiK13 писал(а): ↑26.04.2017 13:05Но что для меня непонятно, так это то, что на МОЁМ компьютере на флешке FAT32 у файла показывается время 6:44, а на рабочем -- 9:44. Хотя часовой пояст и там и там стоит +0300.
Для поверки в 12:52 создал маленький файл. Пошёл на компьютер с АРМом -- mc время не показывает, показывает только дату. Команда ls --full-time показала, что у этого файла время 2017-04-26 15:52:30.000000000 +0300
Это говорит о том, что на Вашем компьютере время настроено неправильно — выставлен часовой пояс UTC, но при этом часы используют UTC+3. Это может быть следствием сочетания двух ошибок: неправильная установка часового пояса (UTC вместо UTC+3) и неправильная интерпретация показаний аппаратных часов (как если бы они были выставлены по UTC, хотя по факту там локальное время). Первое лечится dpkg-reconfigure tzdata, второе — echo 'HWCLOCKPARS=--localtime' >> /etc/default/hwclock.
Подозреваю, что здесь что-то более сложное. Или, точнее, более хитрое.
Нашёл в каталоге флешки запись. относящуюся к этому файлу. Вот её "дамп":
Код: Выделить всё
32 30 31 37 30 34 7E 31 50 4E 47 20 00 00 88 46 9A 4A 9B 4A 00 00 82 35 9A 4A 62 49 C4 DD 01 00
И вот что получил при расшифровке:
DIR_CrtTimeTenth = 00
DIR_CrtTime = 88 46, или 0x4688 = 8:52:16
DIR_CrtDate = 9A 4A, или 0x4A9A = 2017-04-26
DIR_LstAccDate = 9B 4A, или 0z4A9B = 2017-04-27
DIR_FstClusHI = 00 00 -- номер первого кластера, старшие два байта
DIR_WrtTime = 82 35, или 0x3582 = 6:44:04
DIR_WrtDate = 9A 4A2, или 0x4A9A = 2017-04-26
DIR_FstClusLO = 62 49 -- файл начинается с кластера 0x4962
DIR_FileSize = C4 DD 01 00 -- файл имеет размер 122308
И именно такие значения показывала команда ls на работе.
Дома у меня команда ls показала немного другую информацию: (lt -- алиас для ls --full-time)
Код: Выделить всё
mik13@MD:/run/shm/a$ lt 20*
-rwxr-xr-x 1 root root 122308 2017-04-26 06:43:38.000000000 +0300 20170426-04405-0-28.png
mik13@MD:/run/shm/a$ lt -c 20*
-rwxr-xr-x 1 root root 122308 2017-04-26 08:51:50.000000000 +0300 20170426-04405-0-28.png
mik13@MD:/run/shm/a$ lt -u 20*
-rwxr-xr-x 1 root root 122308 2017-04-26 23:59:34.000000000 +0300 20170426-04405-0-28.png
Отличие в том, что я часовой пояс дома установил в right, а не posix. То есть он учитывает високосные секунды, которых набежало 26.
Общее впечатление: "рабочий" компьютер (с АРМом) записывает на флешку время UTC. но показывает его с учётом текущего часового пояса. А вот на моих компьютерах (на работе и дома) записывается локальное время.
Посмотрел на моём компьютере -- файл /etc/default/hwclock есть, но в нём все строки "закомментированы" знаком '#' в начале. А на компьютере с АРМом такого файла вообще нет (может быть в этом дело?)
P.S. Имя файла "20170426-04405-0-28.png" говорит о том, что он был создан 2017-04-26, в 0:44:05 -- на компьютере стоял часовой пояс -0600
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Как хранится время создания файла в разных ФС?
А не надо подозревать. Вы проверьте, это же просто. date что показывает?
Мне это абсолютно ни о чём не говорит, и разбираться в нюансах работы FAT мне неинтересно.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |