Назад | Перейти на главную страницу

Как узнать текущий часовой пояс (оболочка FreeNAS)?

Как я могу узнать, какой часовой пояс в настоящее время действует в моей системе, и получить смещение к нему?

Мне нужна эта информация, чтобы компенсировать некоторые вычисления времени, и я не могу сделать ее постоянной из-за перехода на летнее время (которое эффективно меняет смещение).

Например. В настоящее время смещение моего часового пояса составляет +02: 00, а зимой будет +01: 00. Мне нужно узнать, какой из них, и смещение в часах (например, в этом случае ответ должен быть 2).

Мне нужно было бы сделать это либо в tcsh, либо в bash.

Из командной строки похоже, что часовой пояс не установлен (дата "+% z" возвращает 0). Однако в веб-интерфейсе часовой пояс установлен на Europe / Zagreb. Я хотел бы сместить этот часовой пояс.

Версия FreeNAS - 0.7 RC1.

$ date "+%Z"

Даст вам текущий часовой пояс

$ date "+%z"

Даст смещение от летнего времени

get_current_timzone() {

CURRENT_TIMEZONE="$(md5 /etc/localtime | awk '{print $4}')"

find /usr/share/zoneinfo | while read LINE; do
    FOUND_TIMEZONE="$(md5 ${LINE} | awk '{print $4}')"
    if [ "${CURRENT_TIMEZONE}" == "${FOUND_TIMEZONE}" ]; then
        echo ${LINE} | sed -E 's|/usr/share/zoneinfo/||'
    fi
done

}


root@Host-10 [~]$ get_current_timzone

FreeNAS работает на FreeBSD, поэтому использование http://www.cyberciti.biz/faq/howto-set-date-and-time-timezone-in-freebsd/ как руководство:

Часовой пояс установки FreeBSD

Чтобы настроить правильный часовой пояс, вам необходимо скопировать файл часового пояса из каталога / usr / share / zoneinfo в файл / etc / localtime. Просто перейдите в каталог:

# cd /usr/share/zoneinfo

Используйте команду ls -l, чтобы узнать свой файл зоны.

# ls -l

Например, я нахожусь в Азии / Кулькатте (часовой пояс IST), поэтому мне нужно скопировать файл следующим образом:

# cp /usr/share/zoneinfo/Asia/Calcutta /etc/localtime