Как я могу проверить содержимое / etc / localtime?

23

Какую команду (команды) я могу использовать для проверки содержимого файлов часового пояса, таких как /etc/localtimeфайлы или в них /usr/share/zoneinfo/*?

SLM
источник
2
apropos -s 1 -a time zone
Жиль "ТАК - перестань быть злым"

Ответы:

34

Наиболее подходящая команда , казалось бы zdump.

$ zdump /etc/localtime 
/etc/localtime  Wed Aug  7 23:52:25 2013 EDT

$ zdump /usr/share/zoneinfo/* | tail -10
/usr/share/zoneinfo/Singapore    Thu Aug  8 11:52:48 2013 SGT
/usr/share/zoneinfo/Turkey       Thu Aug  8 06:52:48 2013 EEST
/usr/share/zoneinfo/UCT          Thu Aug  8 03:52:48 2013 UCT
/usr/share/zoneinfo/Universal    Thu Aug  8 03:52:48 2013 UTC
/usr/share/zoneinfo/US           Thu Aug  8 03:52:48 2013
/usr/share/zoneinfo/UTC          Thu Aug  8 03:52:48 2013 UTC
/usr/share/zoneinfo/WET          Thu Aug  8 04:52:48 2013 WEST
/usr/share/zoneinfo/W-SU         Thu Aug  8 07:52:48 2013 MSK
/usr/share/zoneinfo/zone.tab     Thu Aug  8 03:52:48 2013
/usr/share/zoneinfo/Zulu         Thu Aug  8 03:52:48 2013 UTC

Вы также можете опросить эти файлы с помощью fileкоманды:

$ file /etc/localtime 
/etc/localtime: timezone data, version 2, 4 gmt time flags, 4 std time flags, no leap seconds, 235 transition times, 4 abbreviation chars

$ file /usr/share/zoneinfo/Singapore
/usr/share/zoneinfo/Singapore: timezone data, version 2, 8 gmt time flags, 8 std time flags, no leap seconds, 8 transition times, 8 abbreviation chars
SLM
источник
0

Попробуйте tzdump. Я нашел это здесь: http://www.cise.ufl.edu/~seeger/dist/tzdump.c Это программа на C, поэтому ее нужно будет скомпилировать.

Грег Макфарлейн
источник
Эта программа включает в себя то, tzfile.hчто не представляется доступным. Есть копия GitHub той же программы, которой также не хватает tzfile.h.
Wallyk
0

шаги:

  1. Сначала проверьте местное время контейнера Docker:

    [root@locdb oracle]# zdump /etc/localtime
    /etc/localtime  Tue May 22 13:59:40 2018 UTC
    
  2. Проверьте часовые пояса, как показано ниже:

    [root@locdb oracle]# zdump /usr/share/zoneinfo/* | tail -10
    /usr/share/zoneinfo/UTC          Tue May 22 14:01:21 2018 UTC
    /usr/share/zoneinfo/Universal    Tue May 22 14:01:21 2018 UTC
    /usr/share/zoneinfo/W-SU         Tue May 22 17:01:21 2018 MSK
    /usr/share/zoneinfo/WET          Tue May 22 15:01:21 2018 WEST
    /usr/share/zoneinfo/Zulu         Tue May 22 14:01:21 2018 UTC
    /usr/share/zoneinfo/iso3166.tab  Tue May 22 14:01:21 2018
    /usr/share/zoneinfo/posix        Tue May 22 14:01:21 2018
    /usr/share/zoneinfo/posixrules   Tue May 22 10:01:21 2018 EDT
    /usr/share/zoneinfo/right        Tue May 22 14:01:21 2018
    /usr/share/zoneinfo/zone.tab     Tue May 22 14:01:21 2018
    
  3. Скопируйте тот, который вам нужен, например:

    cp  /usr/share/zoneinfo/UTC /etc/localtime
    
Шантонав Сен
источник
исправляя команду на шаге 2: zdump / usr / share / zoneinfo / * | Хвост -10
Шантонав Сен
Я думаю, что упоминание dockerздесь отвлекает от общего решения.
Джефф Шаллер
Я также пока не вижу, чем это отличается от ответа СЛМ
Джефф Шаллер
Вы правы @Jeff Я пробовал это решение в докер-контейнере, не влияя на хост, и, следовательно, возможную путаницу.
Шантонав Сен
-5

На самом деле, все может быть проверено с помощью строк:

# strings /etc/localtime
stackexchanger
источник
4
Да, это на самом деле не работает. Попытайся. Это дает много мусора, и вы не можете разобрать содержимое локали.
SLM
Можно также предложить использовать гекседитор.
jgmjgm