GNU/Linux >> Tutoriels Linux >  >> Linux

Obtenir le fuseau horaire actuel en tant que `Region/City`

Dans ce commentaire de Stéphane Chazelas, il a déclaré :

timedatectl est un systemd chose qui interroge timedated plus de dbus et timedated dérive le nom du fuseau horaire (comme Europe/London ) en faisant un readlink() le /etc/localtime . Si /etc/localtime n'est pas un lien symbolique, alors ce nom ne peut pas être dérivé car ces fichiers de définition de fuseau horaire ne contiennent pas cette information.

Sur la base de ceci et du commentaire de tonioc, j'ai rassemblé ce qui suit :

#!/bin/bash
set -euo pipefail

if filename=$(readlink /etc/localtime); then
    # /etc/localtime is a symlink as expected
    timezone=${filename#*zoneinfo/}
    if [[ $timezone = "$filename" || ! $timezone =~ ^[^/]+/[^/]+$ ]]; then
        # not pointing to expected location or not Region/City
        >&2 echo "$filename points to an unexpected location"
        exit 1
    fi
    echo "$timezone"
else  # compare files by contents
    # https://stackoverflow.com/questions/12521114/getting-the-canonical-time-zone-name-in-shell-script#comment88637393_12523283
    find /usr/share/zoneinfo -type f ! -regex ".*/Etc/.*" -exec \
        cmp -s {} /etc/localtime \; -print | sed -e '[email protected]*/zoneinfo/@@' | head -n1
fi

Pour le fuseau horaire, vous pouvez utiliser la géolocalisation :

$ curl https://ipapi.co/timezone
America/Chicago

Ou :

$ curl http://ip-api.com/line?fields=timezone
America/Chicago

http://wiki.archlinux.org/index.php/time#Time_zone


Linux
  1. Comment modifier les paramètres de fuseau horaire sous Linux ?

  2. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  3. La différence entre ~/.profile, ~/.bashrc, ~/.bash_profile, ~/.gnomerc, /etc/bash_bashrc, /etc/screenrc … ?

  4. Commande grpck – Supprimez les entrées corrompues ou en double dans les fichiers /etc/group et /etc/gshadow.

  5. Quelle est la connexion entre les répertoires /etc/init.d et /etc/rcX.d sous Linux ?

La bonne façon de modifier les fichiers /etc/passwd et /etc/group sous Linux

Comprendre les fichiers /proc/mounts, /etc/mtab et /proc/partitions

/etc/passwd affiche l'utilisateur dans un groupe, mais /etc/group ne le fait pas

Comment puis-je annuler un chmod sur le répertoire etc?

Différence entre /etc/hosts et /etc/resolv.conf

Comment configurer /etc/issues pour afficher l'adresse IP pour eth0