Lệnh timedatectl là một công cụ mới cho các bản phân phối dựa trên RHEL và Debian. Nó là một phần trong hệ thống và quản lý dịch vụ ‘systemd‘, được sử dụng để thay thế cho lệnh ngày truyền thống trong các bản phân phối dựa trên ‘sysvinit‘ của Linux.
Lệnh ‘timedatectl’ cho phép bạn truy vấn và thay đổi cấu hình của đồng hồ hệ thống và các thiết lập của nó, bạn có thể sử dụng lệnh này để đặt hoặc thay đổi ngày, giờ và múi giờ hiện tại, cũng như cho phép đồng bộ hóa tự động đồng hồ hệ thống với một máy chủ NTP từ xa.
Trong hướng dẫn này, tôi sẽ hướng dẫn cho bạn các cách quản lý thời gian trên hệ thống Linux của bạn bằng cách đặt ngày, giờ, múi giờ, và đồng bộ hóa thời gian với NTP từ dòng lệnh bằng cách sử dụng lệnh mới timedatectl.
Luôn lưu ý giữ thời gian chính xác trên máy chủ hoặc hệ thống Linux của bạn và điều này có thể mang lại các lợi ích sau:
- duy trì hoạt động kịp thời của các nhiệm vụ hệ thống vì hầu hết các nhiệm vụ trong Linux được điều khiển bởi thời gian.
- thời gian chính xác cho việc đăng nhập sự kiện và thông tin khác trên hệ thống và nhiều lợi ích khác.
Cách tìm và đặt múi giờ địa phương trong Linux
1. Để hiển thị thời gian và ngày hiện tại trên hệ thống của bạn, sử dụng lệnh timedatectl từ dòng lệnh như sau:
# timedatectl status
Kiểm tra ngày và giờ
Trong video trên, RTC là thời gian đồng hồ phần cứng.
2. Thời gian trên hệ thống Linux của bạn luôn được quản lý thông qua múi giờ được đặt trên hệ thống, để xem múi giờ hiện tại của bạn, làm như sau:
# timedatectl
OR
# timedatectl | grep Time
Kiểm tra múi giờ Linux
3. Để xem tất cả các múi giờ có sẵn, chạy lệnh sau:
# timedatectl list-timezones
Liệt kê tất cả các múi giờ trong Linux
4. Để tìm múi giờ địa phương dựa trên vị trí của bạn, chạy lệnh sau:
# timedatectl list-timezones | egrep -o "Asia/B.*"
# timedatectl list-timezones | egrep -o "Europe/L.*"
# timedatectl list-timezones | egrep -o "America/N.*"
Tìm múi giờ địa phương trong Linux
5. Để đặt múi giờ địa phương của bạn trong Linux, chúng ta sẽ sử dụng công tắc set-timezone như sau.
# timedatectl set-timezone "Asia/Kolkata"
Đặt múi giờ địa phương trong Linux
Luôn khuyến nghị sử dụng và đặt giờ thế giới hợp nhất, UTC.
# timedatectl set-timezone UTC
Đặt thời gian UTC trong Linux
Bạn cần nhập đúng tên múi giờ, nếu không, bạn có thể gặp lỗi khi thay đổi múi giờ, trong ví dụ sau, múi giờ "Asia/Kolkata" không chính xác, do đó gây ra lỗi.
Đặt múi giờ chính xác trong Linux
Cách đặt ngày và giờ trong Linux
6. Bạn có thể đặt ngày và giờ trên hệ thống của bạn, sử dụng lệnh timedatectl như sau:
Đặt thời gian trong Linux
Để chỉ đặt giờ, chúng ta có thể sử dụng công tắc set-time kèm theo định dạng giờ trong HH:MM:SS (Giờ, Phút, và Giây).
# timedatectl set-time 15:58:30
Đặt giờ địa phương trong Linux
Bạn có thể nhận được lỗi sau khi đặt ngày như hiển thị ở trên:
Failed to set time: NTP unit is active
7. Lỗi cho biết dịch vụ NTP đang hoạt động. Bạn cần tắt nó bằng lệnh sau.
# systemctl disable --now chronyd
Đặt ngày và giờ trong Linux
8. Để đặt ngày và giờ, chúng ta có thể sử dụng công tắc set-time kèm theo định dạng ngày trong YY:MM:DD (Năm, Tháng, Ngày) và giờ trong HH:MM:SS (Giờ, Phút và Giây).
# timedatectl set-time '2015-11-20 16:14:50'
Đặt ngày trong Linux
Đặt ngày và giờ trong Linux
Cách tìm và đặt đồng hồ phần cứng trong Linux
9. Để đặt đồng hồ phần cứng của bạn thành giờ thế giới hợp nhất, UTC, sử dụng tùy chọn set-local-rtc boolean-value như sau:
Đầu tiên tìm hiểu xem đồng hồ phần cứng của bạn có được đặt theo múi giờ địa phương hay không:
# timedatectl | grep local
Đặt đồng hồ phần cứng của bạn theo múi giờ địa phương:
# timedatectl set-local-rtc 1
Đặt múi giờ đồng hồ phần cứng
Đặt đồng hồ phần cứng của bạn thành giờ thế giới hợp nhất (UTC):
# timedatectl set-local-rtc 0
Đặt đồng hồ phần cứng thành UTC
Đồng bộ hóa đồng hồ hệ thống Linux với máy chủ NTP từ xa
NTP là viết tắt của Network Time Protocol là một giao thức internet, được sử dụng để đồng bộ hóa đồng hồ hệ thống giữa các máy tính. Công cụ timedatectl cho phép bạn tự động đồng bộ hóa đồng hồ hệ thống Linux của bạn với một nhóm máy chủ từ xa sử dụng NTP.
Vui lòng lưu ý rằng bạn phải cài đặt NTP trên hệ thống để cho phép đồng bộ hóa thời gian tự động với máy chủ NTP.
Để bắt đầu đồng bộ hóa thời gian tự động với một máy chủ NTP từ xa, nhập lệnh sau vào dòng lệnh.
# timedatectl set-ntp true
Để tắt đồng bộ hóa thời gian với NTP, nhập lệnh sau vào dòng lệnh.
# timedatectl set-ntp false
Đây là những ví dụ rất dễ dàng được mô tả trong hướng dẫn này và hy vọng rằng bạn sẽ tìm thấy chúng hữu ích cho việc đặt các đồng hồ hệ thống và múi giờ Linux khác nhau. Để tìm hiểu thêm về công cụ này, hãy xem trang man của timedatectl command.