$ date "+%Z"
Irá dar-lhe o fuso horário atual
$ date "+%z"
Dará o deslocamento do DST
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.
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
O FreeNAS roda no FreeBSD, então usando link como um guia:
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