Pull to refresh

Установка собственной базы временных зон на устройства с Junos

Reading time3 min
Views3.8K
В связи с ожидающим нас в скором времени событии: дне, точнее ночи, «не перехода на зимнее время», хочется рассказать про обновление базы временных зон на оборудовании компании Juniper Networks, Inc. исполняющем операционную систему Junos.

Сама процедура великолепно описана в документации представленной на сайте компании, в документе: "Setting a Custom Time Zone on Routers Running JUNOS Software". Я лишь расскажу о ней на родном языке и уточню отдельные детали.

Разработчиками операционной системы было дальновидно подмечено, что обновление базы временных зон может происходить чаще, чем обновление самой операционной системы. И они предоставили возможность использовать базу, собственноручно изменённую администраторами эксплуатирующими их оборудование.

Как это сделать?
  • Первое, нам необходимо получить и загрузить на устройство самую новую базу временных зон. Разработчики Junos применяют совершенно стандартную "Time Zone Database", используемую и во многих других операционных системах. Актуальная её версия доступна на сайте IANA.

    Смею предположить, что Вы, как администратор имеете доступ к оборудованию по протоколу SSH. И, соответственно, можете применить SCP для переноса полученной у IANA базы на устройство.

    Выполним со станции администратора:

    > scp tzdata2011m.tar.gz admin-name@junos-host.domain.tld:

    При этом мы положим нужный нам архив в домашний каталог пользователя «admin-name», находящийся на устройстве с DNS именем «junos-host.domain.tld». Это лишь один из возможных способов. Другой, я опишу позже.

  • Второе, нам необходимо войти на обновляемое устройство с Junos, применяя протокол SSH. И получить на нём shell, используя команду «start shell»

    — JUNOS 10.2R3.10 built 2010-10-16 20:36:59 UTC
    admin-name@junos-host>
    start shell
    %

    Вы окажетесь в домашнем каталоге пользователя, под которым зарегистрировались. Если вы использовали то же имя пользователя и при копировании файла архива базы данных временных зон, то вы сможете увидеть этот файл выполнив команду «ls -lh». Текущее место расположение внутри файловой системы вы сможете узнать используя команду «pwd».

  • Вернёмся к первому пункту и я расскажу ещё об одном способе получить файл с архивом временных зон на устройстве. Этот способ может подойти, если с вашего устройства есть доступ к сети Internet. Вы можете воспользоваться командой «fetch» и скачать файл непосредственно с сайта IANA, находясь в режиме shell на устройстве.

    % fetch www.iana.org/time-zones/repository/releases/tzdata2011m.tar.gz

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

    % mkdir -p /var/tmp/tz && cd /var/tmp/tz && rm *
    % tar xzvf /var/home/admin-name/tzdata*.gz

    Обратите внимание на то, что мы сделали текущим каталог "/var/tmp/tz". И в нём распаковали содержимое файла архива, расположенного в домашнем каталоге пользователя, под именем которого вы зарегистрировались на устройстве. Если вы выполняли команду «pwd», описанную в пункте два, то заметили, что путь до домашнего каталога, показанный в тот момент и путь, используемый в команде «tar» — отличаются. Вы можете воспользоваться любым из вариантов. В Junos просто создаются символические линки для соответствующих каталогов.

    Если необходимо, то в данный момент, вы можете модифицировать файлы базы, представляющие из себя обычные текстовые файлы, используя, например, текстовый редактор «vi» имеющийся в системе.

    %vi europe

  • Четвёртое. Для исполнения следующих пунктов Вам необходимо получить привилегии пользователя «root» на устройстве. Сделать это можно используя программу «su».

    % su
    Password:
    root@junos-host%


    Возникает законный вопрос: «Где взять пароль для пользователя root»? Ну, конечно, если вы его не знаете. Пароль хранится в конфигурации устройства, секция system.

    system {
        root-authentication {
            encrypted-password "$1$z.GrqhbO$aveIsL2fd4sUbADBrE8Y9/"; ## SECRET-DATA
        }
    }

    При необходимости Вы можете его поменять:

    admin-name@junos-host> edit
    Entering configuration mode

    [edit]
    admin-name@junos-host#
    set system root-authentication plain-text-password
    New password:
    Retype new password:

    [edit]
    admin-name@junos-host#
    commit
    commit complete

  • Пятое. Для компиляции пользовательской базы данных часовых поясов воспользуемся скриптом «compile-tz». В нём, на самом деле, происходит лишь вызов приложения «zic» с предустановленными параметрами.

    % /usr/libexec/ui/compile-tz europe

    В качестве параметров скрипта мы передаём имя исходного файла или нескольких файлов, или любые параметры допустимые для команды «zic».

    Полученные скомпилированные файлы базы данных часовых поясов будут помещены в каталог: "/var/db/zoneinfo/".

  • Шестое. Как применить полученную базу? Просто нужно указать на использование импортированной базы часовых поясов (use-imported-time-zones) и правильно выставить часовой пояс (time-zone).

    [edit]
    admin-name@junos-host#
    set system use-imported-time-zones

    [edit]
    admin-name@junos-host#
    set system time-zone Europe/Moscow

    [edit]
    admin-name@junos-host#
    commit
    commit complete

  • Седьмое. Проверить полученный результат можно командой:

    admin-name@junos-host> show system uptime
Tags:
Hubs:
+1
Comments5

Articles