Làm chủ dòng lệnh: Sử dụng timedatectl để kiểm soát thời gian và ngày hệ thống trong Linux
Lệnh timedatectl
trong Linux cho phép bạn truy vấn và thay đổi đồng hồ hệ thống và các thiết lập của nó. Nó là một phần của systemd, một sự thay thế cho daemon sysvinit được sử dụng trong các hệ thống GNU / Linux và Unix.
Trong bài viết này, chúng tôi sẽ thảo luận về lệnh này và các tính năng mà nó cung cấp bằng cách sử dụng các ví dụ có liên quan.
Ví dụ về Timedatectl
Lưu ý - Tất cả các ví dụ được mô tả trong bài viết này được kiểm tra trên GNU bash, phiên bản 4.3.11 (1).
Hiển thị thông tin ngày / giờ của hệ thống
Đơn giản chỉ cần chạy lệnh mà không có bất kỳ tùy chọn dòng lệnh hoặc cờ, và nó cung cấp cho bạn thông tin về ngày tháng và thời gian hiện tại của hệ thống, cũng như các thiết lập liên quan đến thời gian. Ví dụ, đây là đầu ra khi tôi thực hiện lệnh trên hệ thống của mình:
$ timedatectl Giờ địa phương: Thứ Bảy 2014-11-08 05:46:40 IST Giờ quốc tế: Sat 2014-11-08 00:16:40 UTC Múi giờ: Châu Á / Kolkata (IST, +0530) NTP được bật: có đồng bộ hóa NTP: có RTC trong TZ địa phương: không có DST hoạt động: n / a
Vì vậy, bạn có thể thấy rằng đầu ra chứa thông tin về LTC, UTC, và múi giờ, cũng như các thiết lập liên quan đến NTP, RTC và DST cho localhost.
Cập nhật ngày hoặc giờ của hệ thống bằng cách sử dụng tùy chọn đặt thời gian
Để đặt đồng hồ hệ thống thành ngày hoặc giờ được chỉ định, hãy sử dụng tùy chọn set-time
theo sau bởi một chuỗi chứa thông tin ngày / giờ mới. Ví dụ, để thay đổi thời gian hệ thống thành 6:40 am, tôi đã sử dụng lệnh sau:
$ sudo timedatectl đặt thời gian "2014-11-08 06:40:00"
và đây là đầu ra:
$ timedatectl Giờ địa phương: Thứ Bảy 2014-11-08 06:40:02 IST Giờ quốc tế: Sat 2014-11-08 01:10:02 UTC Múi giờ: Châu Á / Kolkata (IST, +0530) NTP được bật: có Đồng bộ hóa NTP: không có RTC trong TZ cục bộ: không có DST hoạt động: n / a
Quan sát rằng trường Thời gian địa phương hiện hiển thị thời gian được cập nhật. Tương tự, bạn cũng có thể cập nhật ngày hệ thống.
Cập nhật múi giờ của hệ thống bằng cách sử dụng tùy chọn múi giờ
Để đặt múi giờ của hệ thống thành giá trị được chỉ định, bạn có thể sử dụng tùy chọn set-timezone
theo sau bởi giá trị múi giờ. Để giúp bạn thực hiện nhiệm vụ, lệnh timedatectl
cũng cung cấp một tùy chọn hữu ích khác. list-timezones
cung cấp cho bạn một danh sách các list-timezones
có sẵn để lựa chọn.
Ví dụ, đây là danh sách các múi giờ có thể cuộn được mà lệnh timedatectl
được tạo ra trên hệ thống của tôi:
Để thay đổi múi giờ hiện tại của hệ thống từ châu Á / Kolkata đến châu Á / Kathmandu, đây là lệnh mà tôi đã sử dụng:
Múi giờ đặt múi giờ $ timedatectl Châu Á / Kathmandu
và để xác minh thay đổi, đây là đầu ra của lệnh timedatectl
:
$ timedatectl Giờ địa phương: Thứ bảy 2014-11-08 07:11:23 NPT Giờ quốc tế: Sat 2014-11-08 01:26:23 UTC Múi giờ: Châu Á / Kathmandu (NPT, +0545) NTP được bật: có Đồng bộ hóa NTP: không có RTC trong TZ cục bộ: không có DST hoạt động: n / a
Bạn có thể thấy rằng múi giờ đã được thay đổi thành giá trị mới.
Định cấu hình RTC
Bạn cũng có thể sử dụng lệnh timedatectl
để cấu hình RTC (đồng hồ thời gian thực). Đối với những người không biết, RTC là đồng hồ máy tính chạy bằng pin để theo dõi thời gian ngay cả khi hệ thống bị tắt. Lệnh timedatectl
cung cấp một tùy chọn set-local-rtc
có thể được sử dụng để duy trì RTC trong thời gian cục bộ hoặc thời gian quốc tế.
Tùy chọn này yêu cầu một đối số boolean. Nếu 0 được cung cấp, hệ thống được cấu hình để duy trì RTC trong thời gian quốc tế:
$ timedatectl set-local-rtc 0
nhưng trong trường hợp 1 được cung cấp, nó sẽ duy trì RTC trong giờ địa phương thay thế.
$ timedatectl set-local-rtc 1
Lưu ý : Việc duy trì RTC theo múi giờ địa phương không được hỗ trợ đầy đủ và sẽ tạo ra nhiều vấn đề khác nhau với thay đổi múi giờ và điều chỉnh tiết kiệm ánh sáng ban ngày. Nếu có thể, hãy sử dụng RTC trong UTC.
Một điểm đáng chú ý nữa là nếu set-local-rtc
được gọi và tùy chọn --adjust-system-clock
được truyền, đồng hồ hệ thống sẽ được đồng bộ hóa từ RTC một lần nữa, xem xét thiết lập mới. Nếu không RTC được đồng bộ hóa từ đồng hồ hệ thống.
Cấu hình đồng bộ hóa thời gian mạng dựa trên NTP
NTP, hoặc Giao thức thời gian mạng, là một giao thức mạng để đồng bộ hóa đồng hồ giữa các hệ thống máy tính qua mạng chuyển mạch gói, độ trễ biến đổi. Nó được thiết kế để đồng bộ hóa tất cả các máy tính tham gia vào trong một vài phần nghìn giây của UTC.
Lệnh timedatectl
cung cấp tùy chọn set-ntp
để kiểm soát xem đồng bộ hóa thời gian mạng dựa trên NTP có được bật hay không. Tùy chọn này hy vọng một đối số boolean. Để bật đồng bộ hóa thời gian dựa trên NTP, hãy chạy lệnh sau:
$ timedatectl set-ntp true
Để tắt, hãy chạy:
$ timedatectl set-ntp false
Phần kết luận
Rõ ràng từ các ví dụ được mô tả ở trên, lệnh timedatectl
là một công cụ tiện dụng cho các quản trị viên hệ thống có thể sử dụng nó để điều chỉnh các đồng hồ hệ thống và cấu hình RTC khác nhau cũng như các máy chủ từ xa thăm dò ý kiến cho thông tin thời gian. Để tìm hiểu thêm về lệnh này, hãy đi đến trang hướng dẫn của nó.