GNU/Linux >> Znalost Linux >  >> Linux

Získejte aktuální časové pásmo jako `Region/City`

V tomto komentáři Stéphana Chazelase řekl:

timedatectl je systemd věc, která se dotazuje timedated více než dbus a timedated odvozuje název časového pásma (např. Europe/London ) provedením readlink() na /etc/localtime . Pokud /etc/localtime není symbolický odkaz, pak tento název nelze odvodit, protože tyto definiční soubory časového pásma tyto informace neobsahují.

Na základě tohoto a toniocova komentáře jsem dal dohromady následující:

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

Pro časové pásmo můžete použít geolokaci:

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

Nebo:

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

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


Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Bash =~ Regex A Https://regex101.com/?

  3. CentOS / RHEL :Jak obnovit ze smazaného souboru /etc/passwd

  1. Příkaz grpck – Odstraňte poškozené nebo duplicitní položky v souborech /etc/group a /etc/gshadow.

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. Jak změnit datum Linuxu na UTC/GMT +1?

  1. Jak získat aktuální rozlišení monitoru nebo název monitoru (LVDS, VGA1 atd.)

  2. Jaké je spojení mezi adresáři /etc/init.d a /etc/rcX.d v Linuxu?

  3. Měly by weby žít ve /var/ nebo /usr/ podle doporučeného použití?