Como descobrir o fuso horário atual (shell FreeNAS)?

1

Como posso encontrar qual fuso horário está em vigor no meu sistema e compensá-lo?

Eu preciso dessa informação para compensar alguns cálculos de tempo e não posso torná-la constante por causa do horário de verão (que efetivamente altera o deslocamento).

Por exemplo Atualmente, meu deslocamento de fuso horário é de +0: 00 e será +01: 00 durante o inverno. Preciso obter qual deles é e compensar em horas (por exemplo, neste caso, a resposta deve ser 2).

Eu precisaria fazer isso em tcsh ou bash.

Na linha de comando, parece que o fuso horário não está definido (a data "+% z" retorna 0). No entanto, a partir do fuso horário da interface da web é definido para Europa / Zagreb. Desejo compensar esse fuso horário.

A versão do FreeNAS é de 0,7 RC1.

    
por Josip Medved 21.08.2009 / 00:53

3 respostas

7
$ date "+%Z"

Irá dar-lhe o fuso horário atual

$ date "+%z"

Dará o deslocamento do DST

    
por 21.08.2009 / 01:42
1
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
    
por 17.02.2014 / 00:13
0

O FreeNAS roda no FreeBSD, então usando link como um guia:

Fuso Horário de Configuração do FreeBSD

Para configurar o fuso horário correto, você precisa copiar o arquivo de fuso horário do diretório / usr / share / zoneinfo para o arquivo / etc / localtime. Basta ir ao diretório:

# cd /usr/share/zoneinfo

Use o comando ls -l para descobrir seu arquivo de zona.

# ls -l

Por exemplo, eu estou na Ásia / Culcatta (fuso horário IST), então eu preciso copiar o arquivo da seguinte forma:

# cp /usr/share/zoneinfo/Asia/Calcutta /etc/localtime
    
por 21.08.2009 / 01:07