GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Holen Sie sich die aktuelle Zeitzone als "Region/Stadt".

In diesem Kommentar von Stéphane Chazelas sagte er:

timedatectl ist eine systemd Sache, die timedated abfragt über dbus und timedated leitet den Namen der Zeitzone ab (wie Europe/London ), indem Sie readlink() ausführen auf /etc/localtime . Wenn /etc/localtime kein symbolischer Link ist, kann dieser Name nicht abgeleitet werden, da diese Zeitzonen-Definitionsdateien diese Informationen nicht enthalten.

Basierend auf diesem und toniocs Kommentar habe ich Folgendes zusammengestellt:

#!/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

Für die Zeitzone können Sie die Geolokalisierung verwenden:

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

Oder:

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

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


Linux
  1. Wie ändere ich die Zeitzoneneinstellungen in Linux?

  2. Der Unterschied zwischen ~/.profile, ~/.bashrc, ~/.bash_profile, ~/.gnomerc, /etc/bash_bashrc, /etc/screenrc …?

  3. Wie wird /etc/motd aktualisiert?

  4. Befehl grpck – Entfernen Sie beschädigte oder doppelte Einträge in den Dateien /etc/group und /etc/gshadow.

  5. So erhalten Sie die aktuelle Monitorauflösung oder den Monitornamen (LVDS, VGA1 usw.)

Der richtige Weg zum Bearbeiten von /etc/passwd- und /etc/group-Dateien unter Linux

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

/etc/passwd zeigt Benutzer in einer Gruppe an, /etc/group jedoch nicht

Wie kann ich ein chmod im etc-Verzeichnis zurücksetzen?

Unterschied zwischen /etc/hosts und /etc/resolv.conf

So richten Sie /etc/issues ein, um die IP-Adresse für eth0 anzuzeigen