CentOS 7 específico:
timedatectl | gawk -F': ' ' $1 ~ /Timezone/ {print $2}'
E mostrando apenas o fuso horário:
timedatectl | gawk -F'[: ]+' ' $2 ~ /Timezone/ {print $3}'
mais genérico:
date +%Z
Na versão anterior do CentOS, usei o seguinte comando para obter o fuso horário atual no meu script bash:
timezone=$(sed 's/ZONE=//g' /etc/sysconfig/clock)
A saída é
"America/New_York"
Como posso obter uma saída exata no CentOS 7?
Se você não se importa em usar perl
, pode usar DateTime :: Módulo TimeZone do CPAN:
$ perl -MDateTime::TimeZone -E '
say DateTime::TimeZone->new(name => "local")->name();
'
Asia/Ho_Chi_Minh
POSIXly, você pode usar data com %Z
format:
$ date +%Z
ICT
Para o fuso horário, você pode usar a geolocalização:
$ curl https://ipapi.co/timezone
America/Chicago
Ou:
$ curl http://ip-api.com/line?fields=timezone
America/Chicago