Thứ sáu, 28/04/2017 | 00:00 GMT+7

Cách thiết lập đồng bộ hóa thời gian trên Ubuntu 16.04

Chấm công chính xác đã trở thành một thành phần quan trọng của việc triển khai phần mềm hiện đại. Cho dù đó là đảm bảo log được ghi theo đúng thứ tự hay các cập nhật database được áp dụng đúng cách, thời gian không đồng bộ hóa có thể gây ra lỗi, hỏng dữ liệu và các vấn đề khó gỡ lỗi khác.

Ubuntu 16.04 có tích hợp đồng bộ hóa thời gian và được kích hoạt theo mặc định bằng dịch vụ timesyncd của systemd. Trong bài viết này, ta sẽ xem xét một số lệnh cơ bản liên quan đến thời gian, xác minh timesyncd đang hoạt động và tìm hiểu cách cài đặt dịch vụ thời gian mạng thay thế.

Yêu cầu

Trước khi bắt đầu hướng dẫn này, bạn cần một server Ubuntu 16.04 với user không root, đã bật sudo, như được mô tả trong hướng dẫn cài đặt server Ubuntu 16.04 này .

Lệnh cơ bản nhất để tìm ra thời gian trên server của bạn là date . Mọi user cũng có thể gõ lệnh này để in ra ngày và giờ:

  • date
Output
Wed Apr 26 17:44:38 UTC 2017

Thông thường, server của bạn sẽ mặc định theo múi giờ UTC , như được đánh dấu trong kết quả ở trên. UTC là Giờ Phối hợp Quốc tế , thời gian ở kinh độ 0 độ. Việc sử dụng nhất quán Giờ quốc tế giúp giảm nhầm lẫn khi cơ sở hạ tầng của bạn trải dài trên nhiều múi giờ.

Nếu bạn có các yêu cầu khác và cần thay đổi múi giờ, bạn có thể sử dụng lệnh timedatectl để thực hiện.

Đầu tiên, hãy liệt kê các múi giờ khả dụng:

  • timedatectl list-timezones

Danh sách các múi giờ sẽ in ra màn hình của bạn. Bạn có thể nhấn SPACE để trang xuống, và b để trang lên. Khi bạn tìm thấy múi giờ chính xác, hãy ghi lại múi giờ đó rồi gõ q để thoát khỏi danh sách.

Bây giờ, hãy đặt múi giờ với timedatectl set-timezone , đảm bảo thay thế phần được đánh dấu bên dưới bằng múi giờ bạn tìm thấy trong danh sách. Bạn cần sử dụng sudo với timedatectl để thực hiện thay đổi này:

  • sudo timedatectl set-timezone America/New_York

Bạn có thể xác minh các thay đổi của bạn bằng cách chạy lại date :

  • date
Output
Wed Apr 26 13:55:45 EDT 2017

Tên viết tắt của múi giờ phải phản ánh giá trị mới được chọn.

Bây giờ ta đã biết cách kiểm tra đồng hồ và đặt múi giờ, hãy đảm bảo thời gian của ta đang được đồng bộ hóa đúng cách.

Kiểm soát timesyncd với timedatectl

Cho đến gần đây, hầu hết đồng bộ hóa thời gian mạng được xử lý bởi trình Giao thức Thời gian Mạng hoặc ntpd. Server này kết nối với một group các server NTP khác cung cấp cho nó các bản cập nhật thời gian liên tục và chính xác.

Cài đặt mặc định của Ubuntu hiện sử dụng timesyncd thay vì ntpd. timesyncd kết nối với các server cùng thời gian và hoạt động theo cùng một cách, nhưng nhẹ hơn và tích hợp hơn với systemd và các hoạt động cấp thấp của Ubuntu.

Ta có thể truy vấn trạng thái của timesyncd bằng cách chạy timedatectl mà không có đối số. Bạn không cần sử dụng sudo trong trường hợp này:

  • timedatectl
Output
Local time: Wed 2017-04-26 17:20:07 UTC Universal time: Wed 2017-04-26 17:20:07 UTC RTC time: Wed 2017-04-26 17:20:07 Time zone: Etc/UTC (UTC, +0000) Network time on: yes NTP synchronized: yes RTC in local TZ: no

Điều này in ra giờ local , giờ quốc tế (có thể giống với giờ local , nếu bạn không chuyển từ múi giờ UTC) và một số thông tin trạng thái giờ mạng. Network time on: yes nghĩa là timesyncd được bật và NTP synchronized: yes cho biết thời gian đã được đồng bộ hóa thành công.

Nếu timesyncd không được bật, hãy bật nó bằng timedatectl:

  • sudo timedatectl set-ntp on

Chạy lại timedatectl để xác nhận trạng thái thời gian mạng. Có thể mất một phút để đồng bộ hóa thực sự xảy ra, nhưng cuối cùng cả Network time on:NTP synchronized: sẽ đọc là yes .

Chuyển sang ntpd

Mặc dù timesyncd là tốt cho hầu hết các mục đích, một số ứng dụng rất nhạy cảm với những xáo trộn nhỏ nhất về thời gian có thể được ntpd phục vụ tốt hơn, vì nó sử dụng các kỹ thuật phức tạp hơn để liên tục và dần dần giữ cho thời gian hệ thống theo dõi.

Trước khi cài đặt ntpd, ta nên tắt timesyncd:

  • sudo timedatectl set-ntp no

Xác minh timesyncd đã tắt:

  • timedatectl

Tìm Network time on: no trong kết quả . Điều này nghĩa là timesyncd đã bị dừng. Bây giờ ta có thể cài đặt gói ntp với apt-get :

  • sudo apt-get install ntp

ntpd sẽ được bắt đầu tự động sau khi cài đặt. Bạn có thể truy vấn ntpd để biết thông tin trạng thái để xác minh mọi thứ đang hoạt động:

  • sudo ntpq -p
Output
remote refid st t when poll reach delay offset jitter ============================================================================== 0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000 -makaki.miuku.ne 210.23.25.77 2 u 45 64 3 248.007 -0.489 1.137 -69.10.161.7 144.111.222.81 3 u 43 64 3 90.551 4.316 0.550 +static-ip-85-25 130.149.17.21 2 u 42 64 3 80.044 -2.829 0.900 +zepto.mcl.gg 192.53.103.108 2 u 40 64 3 83.331 -0.385 0.391

ntpq là một công cụ truy vấn cho ntpd. Cờ -p hỏi thông tin về server NTP (hoặc p eers) ntpd đã kết nối với. Đầu ra của bạn sẽ hơi khác một chút, nhưng nên liệt kê các server pool Ubuntu mặc định cùng với một số server khác. Lưu ý có thể mất vài phút để ntpd cài đặt kết nối.

Kết luận

Trong bài viết này, ta đã hướng dẫn cách xem giờ hệ thống, thay đổi múi giờ, làm việc với timesyncd mặc định của Ubuntu và cài đặt ntpd. Nếu bạn có nhu cầu chấm công phức tạp hơn những gì ta đã đề cập ở đây, bạn có thể tham khảo tài liệu chính thức của NTP và cũng có thể xem qua Dự án NTP Pool , một group tình nguyện viên global cung cấp nhiều cơ sở hạ tầng NTP trên thế giới.


Tags:

Các tin liên quan

Cách quản lý log với Graylog 2 trên Ubuntu 16.04
2017-04-25
Cách cài đặt Webmin trên Ubuntu 16.04
2017-04-21
Cách cài đặt và cấu hình OrientDB trên Ubuntu 16.04
2017-03-24
how-to-monitor-system-metrics-with-the-tick-stack-on-ubuntu-16-04
2017-03-16
Cách cài đặt và cấu hình Postfix trên Ubuntu 16.04
2017-03-16
Cách cấu hình client FreeIPA trên Ubuntu 16.04
2017-03-08
Cách cài đặt Moodle trên Ubuntu 16.04
2017-03-02
Cách cài đặt và bảo mật MongoDB trên Ubuntu 16.04
2017-02-24
Cách cài đặt ionCube trên Ubuntu 16.04
2017-01-11
Cách thiết lập xác thực đa yếu tố cho SSH trên Ubuntu 16.04
2017-01-10