Como sei se o clock do hardware no linux está configurado para localtime ou UTC?

3

Eu tenho um PC dual boot, e para que o Windows e o Linux concordem com o tempo, eu configurei o clock do hardware para o localtime no linux como descrito aqui .

Agora eu quero fazer um script para verificar se a minha configuração do Linux é o que eu quero que seja - para isso eu preciso verificar se o clock do hardware está salvo no horário local ou no UTC. Mas o hwclock apenas me dá o tempo no horário local, mesmo que o relógio do hardware esteja no UTC.

Então, como eu sei se o clock do hardware no linux está definido para localtime ou UTC?

(o Linux é o Crunchbang 11 - família Debian e o Windows é 8.1)

    
por victorjtfranco 11.08.2014 / 01:16

2 respostas

1

Você pode usar hwclock para mostrar os resultados em localtime ou utc .

Use apenas o sinalizador correspondente para cada caso:

jim@g6:~$ sudo hwclock --localtime
lun 11 ago 2014 03:12:18 CLT  -0.547401 seconds

jim@g6:~$ sudo hwclock --utc
dom 10 ago 2014 23:12:22 CLT  -0.672848 seconds

Em seguida, execute date e verifique quais dos resultados acima correspondem à saída de date .

    
por 11.08.2014 / 05:20
0

Você pode tentar o script abaixo:

#!/bin/bash

curl time.nist.gov:13 2>&1|tee time_nist_gov_13
while cat time_nist_gov_13|grep 'Empty\|denied\|unreachable'
do
 sleep 0.1
 curl time.nist.gov:13 2>&1|tee time_nist_gov_13
done

str=$(cat time_nist_gov_13 | sed '1,3d'|awk  '{print $3}')

hh=$(echo $str|awk -F':' '{print $1}')
mm=$(echo $str|awk -F':' '{print $2}')

a=$(date -u | awk '{print $4 }'| awk -F':' '{print $1}') 
b=$(date -u | awk '{print $4 }'| awk -F':' '{print $2}')

mindiff=$(echo "$b-$mm"|bc)

if [ $mindiff == "-1" ] ; then $mindiff = "1"; 
fi

if [ "$hh" == "$a" ] && ([ "$mm" == "$b" ] || [ "$mindiff" == "1" ])   ; then echo "Your Local time is assigned to UTC";
 else echo "Your Local time is NOT assigned to UTC";
fi

Uma explicação é a seguinte: o script obtém a hora UTC + 0 e a compara com date -u hora local subtraída pela diferença de fuso horário com referência a UTC + 0 e, se for a mesma, significa que sua hora local está correta para o seu fuso horário.

Nem sempre funcionará perfeitamente, pois o servidor pode ficar inacessível às vezes, e o script estará aguardando, e o script processa apenas o tipo de erros de árvore filtrados por 'Empty\|denied\|unreachable'

Assim, quando você tiver "Seu horário local está vinculado ao UTC", o horário local está vinculado ao UTC com o deslocamento do fuso horário local.

mas de qualquer maneira eu escrevi este roteiro para dar uma idéia de como poderia ser, e se você precisar dele mais sério, por favor inclua mais detalhes. Então, qualquer um pode ver seus requisitos para a funcionalidade. Espero que ajude.

    
por 11.08.2014 / 05:09