GNU/Linux >> Belajar Linux >  >> Linux

Dapatkan zona waktu saat ini sebagai `Wilayah/Kota`

Dalam komentar ini oleh Stéphane Chazelas, dia berkata:

timedatectl adalah systemd hal yang mempertanyakan timedated lebih dari dbus dan timedated memperoleh nama zona waktu (seperti Europe/London ) dengan melakukan readlink() pada /etc/localtime . Jika /etc/localtime bukan symlink, maka nama tersebut tidak dapat diturunkan karena file definisi zona waktu tersebut tidak berisi informasi tersebut.

Berdasarkan ini dan komentar tonioc, saya mengumpulkan yang berikut:

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

Untuk zona waktu, Anda dapat menggunakan geolokasi:

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

Atau:

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

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


Linux
  1. Bagaimana Mengubah Pengaturan Zona Waktu di Linux?

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

  3. Perbedaan Antara ~/.profile, ~/.bashrc, ~/.bash_profile, ~/.gnomerc, /etc/bash_bashrc, /etc/screenrc …?

  1. CentOS / RHEL :Cara Memulihkan dari file /etc/passwd yang dihapus

  2. /etc/passwd menampilkan pengguna dalam grup, tetapi /etc/group tidak

  3. Bagaimana saya bisa mengembalikan chmod pada direktori dll?

  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Perbedaan antara /etc/hosts dan /etc/resolv.conf

  3. Cara mengatur /etc/issues untuk menampilkan alamat IP untuk eth0