Переход на зимнее время

Главная Форумы POWER Systems AIX/Hardware Переход на зимнее время

Просмотр 8 веток ответов
  • Автор
    Сообщения
    • #20221
      Дмитрий
      Участник

      По состоянию на сейчас новый вариант ФЗ “Об исчислении времени” ещё не принят, но, скорее всего, вариантов нет.
      26 октября 2014 г. в 02:00 нужно будет однократно перевести часы на 1 час.
      Как это сделать?
      Если у вас совсем немного систем и если вы не работаете в режиме 24×7, то сложности никакой нет. Поменял описание Time Zone, перезагрузил ОС и все дела.
      А если систем много, если это 24×7, и время поступает от Time-сервера?
      Тогда ой.

      Конечно, есть вариант “перезагрузить весь ЦОД” в 2 часа ночи. Но это @@@@@.
      Мы с коллегами уже обсудили, и склоняемся к такому варианту:
      1. Заранее меняем описание TZ с MSK-4 на MSK-4,MST-3,*** (не помню уже формата). Суть в том, что меняем описание на “старый” формат, с летним и зимним временем.
      2. В сервисные окна перезагружаем ОС, совмещая это, например, с работами по обновлению ОС или HW или микрокода.
      3. Визуально ничего не происходит, сейчас продолжается летнее время, если time-сервер выдаёт “гринвич”, всё OK.
      4. В час “Ч” 26.10.2014 мы спокойно спим, а системы, как это было несколько лет назад, сами переведут часы.
      5. Меняем все TZ на формат TZ=MSK-3 и не забываем перезагрузить все ОС до весны (см. п.2)

      Когда был переход на фиксированное летнее время, то мы поступили аналогично, заранее сменив TZ на MSK-4, не дожидясь патчей от IBM. Сейчас отличие: придётся проделать это 2 раза: до и после.

      Открытым, как и в прошлый раз, остаётся вопрос с Time Zone в Java: см. JTZU.
      По прошлому разу помню, что Open Source отработал оперативно, а официальная поддержка IBM стала шевелиться только после официального вступления закона в силу. В разультате патчи, мягко говоря, запоздали… Посмотрим, что будет сейчас, но, как только подпишут, придётся забрасывать поддержку кейсами.

      Уважаемое сообщество AIXPortal:
      Не факт, что предложныый выше способ перевода часов самый оптимальный.
      Жду ваших комментариев и предложений!
      https://aixportal.ru/forum/28-system-i-as400/19410—–.html

    • #20222
      Дмитрий
      Участник

      update: Уважаемый sever предлагает такое-же решение для ОС IBM i.
      https://aixportal.ru/forum/28-system-i-as400/19410—–.html

    • #20224
      Andrew White
      Участник

      moscow

      Скомпилировал новый файл Europe/Moscow с учетом переключения на UTC+3 в два часа ночи 26 октября 2014 года по местному времени, т.е. с двух часов ночи перейдем на один час ночи.
      Сначала добился, что без нового правила файл по размеру совпадал со старым и diff не видел разницы, потом добавил правило. Но не проверял еще, как сработает.

      Файл надо переимновать и положить в /usr/share/lib/zoneinfo/Europe/Moscow.
      Само собой на тестовой системе сначала и без гарантий))

    • #20226
      Andrew White
      Участник

      Работает:
      [code]Sun Oct 26 01:59:40 MSK 2014
      bash-3.2# date
      Sun Oct 26 01:59:55 MSK 2014
      bash-3.2# date
      Sun Oct 26 01:59:57 MSK 2014
      bash-3.2# date
      Sun Oct 26 01:59:58 MSK 2014
      bash-3.2# date
      Sun Oct 26 01:59:59 MSK 2014
      bash-3.2# date
      Sun Oct 26 01:00:00 MSK 2014
      bash-3.2# date
      Sun Oct 26 01:00:01 MSK 2014
      bash-3.2# date
      Sun Oct 26 01:00:01 MSK 2014
      bash-3.2# date
      Sun Oct 26 01:00:02 MSK 2014
      [/code]

    • #20227
      Дмитрий
      Участник

      Хороший вариант, спасибо!
      Если ОС время с тайм-сервера берёт, проверяли?
      (хотя, наверное, разницы нет).

      1. Не подходит тем, кто тайм-зону прописывал вручную, т.е. TZ=MSK-4, а не TZ=Europe/Moscow.
      1.1. Но если поменять с “ручной” на предложенную WHT, то можно обойтись одной перезагрузкой вместо двух.
      2. В случае установки обновлений AIX (TL/SP) нужно перепроверять, что случилось с эти файлом.

      3. Что-то мне подсказывает, что и в “ручном” описании переменной TZ можно настроить переход только 26.10.2014…

    • #20430
      Alexander Teterkin
      Участник

      Вот для Екатеринбурга написал:

      AIX – Как настроить автоматический переход на зимнее время 26 Октября 2014 года в Екатеринбурге (с одной перезагрузкой)

      Данный формат времени должен работать с AIX 6.1 и выше.

      Не забывайте тестировать на тестовом сервере прежде чем применять на производственном (рабочем) сервере.

      Смотрим текущее время:

      [code]root@nim:/ # date
      Fri Oct 10 11:52:41 YEKT 2014[/code]

      Смотрим используемую зону:

      [code]root@nim:/ # cat /etc/environment | grep TZ
      TZ=Asia/Yekaterinburg[/code]

      Если у вас другая временная зона (в Екатеринбурге), то нужно поменять и перезагрузить машину при первой возможности.

      Смотрим запланированные смены времени в 2014 году:

      [code]root@nim:/ # zdump -v Asia/Yekaterinburg |grep 2014
      root@nim:/ #[/code]

      Их нет. Так и должно быть. Т.к., например, обновления AIX еще не было или мы не захотели его устанавливать.

      Для примера можем посмотреть как было в 2010-м и 2011-м году:

      [code]root@nim:/ # zdump -v Asia/Yekaterinburg |grep 2010
      Asia/Yekaterinburg Sat Mar 27 20:59:59 2010 UTC = Sun Mar 28 01:59:59 2010 YEKT isdst=0
      Asia/Yekaterinburg Sat Mar 27 21:00:00 2010 UTC = Sun Mar 28 03:00:00 2010 YEKST isdst=1
      Asia/Yekaterinburg Sat Oct 30 20:59:59 2010 UTC = Sun Oct 31 02:59:59 2010 YEKST isdst=1
      Asia/Yekaterinburg Sat Oct 30 21:00:00 2010 UTC = Sun Oct 31 02:00:00 2010 YEKT isdst=0
      root@nim:/ #

      root@nim:/ # zdump -v Asia/Yekaterinburg |grep 2011
      Asia/Yekaterinburg Sat Mar 26 20:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 YEKT isdst=0
      Asia/Yekaterinburg Sat Mar 26 21:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 YEKT isdst=0
      root@nim:/ #[/code]

      Идем на официальный сайт и скачиваем там самые свежие файлы базы временных зон:

      ftp://ftp.iana.org/tz/releases/

      Для компиляции зоны вам понадобится следующий файл:
      ftp://ftp.iana.org/tz/releases/tzdata2014h.tar.gz (на 10.10.2014 года, возможно, сейчас есть уже более свежий файл).

      Загрузите файл во временную папку на вашем сервере:

      [code]root@nim:/ # cd /tmp/tz

      root@nim:/tmp/tz # ls
      tzdata2014h.tar.gz[/code]

      Распакуйте:

      [code]root@nim:/tmp/tz # gzip -d tzdata2014h.tar.gz

      root@nim:/tmp/tz # tar -xvf tzdata2014h.tar
      x CONTRIBUTING, 2162 bytes, 5 media blocks.
      x Makefile, 25347 bytes, 50 media blocks.
      x NEWS, 91484 bytes, 179 media blocks.
      x README, 2623 bytes, 6 media blocks.
      x Theory, 34422 bytes, 68 media blocks.
      x africa, 49299 bytes, 97 media blocks.
      x antarctica, 15024 bytes, 30 media blocks.
      x asia, 120115 bytes, 235 media blocks.
      x australasia, 72007 bytes, 141 media blocks.
      x europe, 142083 bytes, 278 media blocks.
      x northamerica, 133131 bytes, 261 media blocks.
      x southamerica, 73897 bytes, 145 media blocks.
      x pacificnew, 1182 bytes, 3 media blocks.
      x etcetera, 2945 bytes, 6 media blocks.
      x backward, 4285 bytes, 9 media blocks.
      x systemv, 1538 bytes, 4 media blocks.
      x factory, 385 bytes, 1 media blocks.
      x backzone, 14190 bytes, 28 media blocks.
      x iso3166.tab, 4554 bytes, 9 media blocks.
      x leapseconds, 2114 bytes, 5 media blocks.
      x zone1970.tab, 18512 bytes, 37 media blocks.
      x zone.tab, 20050 bytes, 40 media blocks.
      x leap-seconds.list, 9854 bytes, 20 media blocks.
      x yearistype.sh, 678 bytes, 2 media blocks.
      x checktab.awk, 4725 bytes, 10 media blocks.
      x leapseconds.awk, 2303 bytes, 5 media blocks.
      x zoneinfo2tdf.pl, 1409 bytes, 3 media blocks.
      root@nim:/tmp/tz #
      [/code]

      Создаем резервную копию текущей директории zoneinfo:

      [code]root@nim:/ # tar cvf ZoneInfo.bakup.tar /usr/share/lib/zoneinfo[/code]

      Полученный файл ZoneInfo.bakup.tar скачиваем на рабочую станцию и проверяем.

      Компилируем новые файлы zoneinfo:

      [code]root@nim:/tmp/tz # zic europe[/code]

      Обратите внимание, что Екатеринбург хоть это и “Asia/Yekaterinburg” находится в файле “europe”.

      [code]root@nim:/tmp/tz # cat europe | grep -p Yekaterinburg

      Zone Asia/Yekaterinburg 4:02:33 – LMT 1916 Jul 3
      3:45:05 – PMT 1919 Jul 15 4:00
      4:00 – SVET 1930 Jun 21 # Sverdlovsk Time
      5:00 Russia SVE%sT 1991 Mar 31 2:00s
      4:00 Russia SVE%sT 1992 Jan 19 2:00s
      5:00 Russia YEK%sT 2011 Mar 27 2:00s
      6:00 – YEKT 2014 Oct 26 2:00s
      5:00 – YEKT[/code]

      Проверяем, что зона поменяет время:

      [code]root@nim:/tmp/tz # zdump -v Asia/Yekaterinburg |grep 2014
      Asia/Yekaterinburg Sat Oct 25 19:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 YEKT isdst=0
      Asia/Yekaterinburg Sat Oct 25 20:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 YEKT isdst=0
      root@nim:/tmp/tz #[/code]

      26 Октября в 2:00 по местному времени часы переведутся на час назад.

      Для принятия изменений перезагрузите сервер в удобное для вас время:
      [code]root@nim:/tmp/tz # shutdown -Fr[/code]

      Не забываем тестировать прежде чем запускать на производственных (рабочих) машинах. Для этого на тестовой машине сделайте настройки, отключите синхронизацию времени (если была), поменяйте время на 26 Октября, перезагрузитесь и посмотрите что получится при наступлении времени перехода (2 часа ночи):

      [code]root@nim:/tmp/tz # while true; do date; sleep 1; done
      Sun Oct 26 01:59:50 YEKT 2014
      Sun Oct 26 01:59:51 YEKT 2014
      Sun Oct 26 01:59:52 YEKT 2014
      Sun Oct 26 01:59:53 YEKT 2014
      Sun Oct 26 01:59:54 YEKT 2014
      Sun Oct 26 01:59:55 YEKT 2014
      Sun Oct 26 01:59:56 YEKT 2014
      Sun Oct 26 01:59:57 YEKT 2014
      Sun Oct 26 01:59:58 YEKT 2014
      Sun Oct 26 01:59:59 YEKT 2014
      Sun Oct 26 01:00:00 YEKT 2014
      Sun Oct 26 01:00:01 YEKT 2014
      Sun Oct 26 01:00:02 YEKT 2014
      Sun Oct 26 01:00:03 YEKT 2014
      Sun Oct 26 01:00:04 YEKT 2014
      Sun Oct 26 01:00:05 YEKT 2014

      root@nim:/tmp/tz #
      [/code]
      У меня на тестовой машине установлен следующий уровень AIX:
      [code]root@nim:/ # oslevel -s
      7100-03-01-1341[/code]

      Не забываем что Java, разные приложения которые могут использовать “свое время”, СУБД, HMC и т.п. тоже надо переводить.

      Дополнительная информация:
      http://cs.ucla.edu/~eggert/tz/tz-link.htm
      http://www.ibm.com/developerworks/ru/library/au-time/

    • #20433
      Alexander Teterkin
      Участник

      Кстати, IBM выпустил патчи уже.
      Просто регистрируйте заявку в IBM и вам пришлют патч.

    • #21250
      Del
      Участник

      Здравствуйте,
      Можете ли вы сказать мне, как зарегистрировать заявку ?

      • Ответ изменён 6 лет, 1 месяц назад пользователем Del.
    • #37528
      sdudnik
      Участник

      Кто-нибудь в курсе, надо в яве отдельно менять время?

Просмотр 8 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.