Vous pouvez essayer le script ci-dessous :
#!/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
L'explication est la suivante : le script récupère l'heure UTC+0 et la compare à date -u
l'heure locale soustraite de la différence de fuseau horaire par rapport à UTC+0, et si le résultat est le même, cela signifie que votre heure locale est correcte pour votre fuseau horaire.
Il ne fonctionnera pas toujours parfaitement, car le serveur peut parfois être inaccessible et le script sera en attente, et le script ne traite que trois types d'erreurs filtrant par 'Empty\|denied\|unreachable'
Donc, une fois que vous avez obtenu "Your Local time is tied to UTC", c'est tout, l'heure locale est liée à UTC avec le décalage du fuseau horaire local.
mais de toute façon j'ai écrit ce script pour donner une idée de comment cela pourrait être, et si vous en avez besoin de manière plus sérieuse, veuillez inclure plus de détails. Alors tout le monde peut voir vos exigences à la fonctionnalité. J'espère que cela vous aidera.