Vô hiệu hóa thay đổi thời gian tiết kiệm ánh sáng ban ngày (DST) trong Linux


12

Vài tuần trước, thông báo (của Bộ Năng lượng và Tài nguyên Thổ Nhĩ Kỳ) đã thông báo rằng DST sẽ là vĩnh viễn và GMT + 3 sẽ được sử dụng mãi mãi ở nước này.

Hiện tại, múi giờ của các máy chủ Linux của chúng tôi được đặt thành Châu Âu / Istanbul . Nhưng chưa có bản cập nhật tzdata nào được phát hành.

Do thiếu cập nhật, múi giờ sẽ được thay đổi tự động từ GMT + 3 thành GMT + 2 vào ngày 30 tháng 10 năm 2016 như được khai báo trong tệp khu vựcinfo (/ usr / share / zoneinfo / Châu Âu / Istanbul).

Bạn có thể xem chi tiết cho năm 2016 dưới đây:

# zdump -v /usr/share/zoneinfo/Europe/Istanbul | grep 2016
/usr/share/zoneinfo/Europe/Istanbul  Sun Mar 27 00:59:59 2016 UT = Sun Mar 27 02:59:59 2016 EET isdst=0 gmtoff=7200
/usr/share/zoneinfo/Europe/Istanbul  Sun Mar 27 01:00:00 2016 UT = Sun Mar 27 04:00:00 2016 EEST isdst=1 gmtoff=10800
/usr/share/zoneinfo/Europe/Istanbul  Sun Oct 30 00:59:59 2016 UT = Sun Oct 30 03:59:59 2016 EEST isdst=1 gmtoff=10800
/usr/share/zoneinfo/Europe/Istanbul  Sun Oct 30 01:00:00 2016 UT = Sun Oct 30 03:00:00 2016 EET isdst=0 gmtoff=7200

(Trong trường hợp không có bản cập nhật) Để ngăn tình trạng này trở nên khủng hoảng, chúng tôi quyết định có một kế hoạch dự phòng đang đặt múi giờ của các máy chủ của chúng tôi để cố định GMT + 3 ; nhưng chúng tôi phải đối mặt với một hành vi kỳ lạ khi cố định GMT + 3 được đặt.

Hãy xem giờ địa phương và giờ UTC trên máy chủ của chúng tôi là gì trước khi chúng tôi thực hiện bất kỳ thay đổi nào trên múi giờ.

# date
Wed Sep 21 11:13:11 EEST 2016
# date -u
Wed Sep 21 08:13:15 UTC 2016

Chúng tôi đặt múi giờ thành cố định GMT + 3 như sau:

# rm -f /etc/localtime
# ln -s /usr/share/zoneinfo/Etc/GMT+3 /etc/localtime

Hãy xem giờ địa phương và giờ UTC trên máy chủ của chúng tôi sau khi thay đổi là gì. GMT + 3 thời gian sớm hơn 3 giờ so với UTC trong đó phải trễ hơn 3 giờ so với UTC , như đã thấy trong đầu ra ở trên.

# date
Wed Sep 21 05:14:24 GMT+3 2016
# date -u
Wed Sep 21 08:14:26 UTC 2016

Nó không thay đổi, ngay cả khi chúng tôi đặt lại giờ địa phương hoặc giờ UTC.

# date -s "21 Sep 2016 11:16:00"
Wed Sep 21 11:16:00 GMT+3 2016
# date
Wed Sep 21 11:16:02 GMT+3 2016
# date -u
Wed Sep 21 14:16:05 UTC 2016

# date -u -s "21 Sep 2016 11:16:00"
Wed Sep 21 11:16:00 UTC 2016
# date
Wed Sep 21 08:16:01 GMT+3 2016
# date -u
Wed Sep 21 11:16:02 UTC 2016

Tại sao phần bù có vẻ ngược?

Câu trả lời:


12

Cập nhật # 1: Cập nhật cơ sở dữ liệu múi giờ được phát hành gần đây cho một số hệ điều hành trong kho chính thức của họ. Phiên bản tzdata2016gbao gồm các cài đặt cho sự thay đổi được đề cập.

Tại một số điểm, câu hỏi này là bản sao của câu hỏi được hỏi trên superuser.com .

Câu trả lời rõ ràng là

"Các khu vực như Etc / GMT + 6 được đảo ngược có chủ ý để tương thích ngược với các tiêu chuẩn POSIX"

Nhưng tôi tin rằng không nên xóa nó để giúp những người muốn vô hiệu hóa các thay đổi DST trong các hệ thống Linux.

Để vô hiệu hóa các thay đổi DST , liên kết /etc/localtimetệp của bạn với một trong các tệp vùnginfo được đặt trong thư mục/usr/share/zoneinfo/Etc/

Lệnh ví dụ:

# ln -s /usr/share/zoneinfo/Etc/GMT+3 /etc/localtime

Để chọn tệp areainfo phù hợp nhất , hãy đảo ngược dấu hiệu của GMT được nhắm mục tiêu của bạn.

tức là để đặt múi giờ GMT + 3 (trước 3 giờ so với UTC), bạn nên sử dụng / usr / share / zoneinfo / Etc / GMT-3


+1 từ tôi, nhưng thực sự, điều đó nói lên tất cả mọi thứ bạn cần biết về POSIX, và tại sao mọi người đều ghét nó.
MadHatter

2

Tại một số điểm, các bản sửa đổi mới cho bảng TZ sẽ được phát hành và có sẵn để cập nhật cho tất cả các bản phân phối Linux. Hmm .... Tôi có thể đã tuyên bố rằng một bảng múi giờ cập nhật đã được cung cấp ngay sau khi thông báo được đưa ra để giải quyết vấn đề này. Có lẽ có thể có một người chỉ định TZ mới cho tình huống của bạn.


1
Đồng ý với bạn. Nếu cập nhật thì không vấn đề gì. Chúng tôi chỉ nói về một kế hoạch dự phòng.
vaha
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.