BÀI VIẾT

Hướng dẫn thiết lập đồng bộ hóa thời gian trên Ubuntu 22.04

5.4K
author Huỳnh Đình Hiếu - 2022-08-11 15:21:36 (GMT+7)

Giới thiệu

Giữ cho thời gian chính xác là một phần không thể thiếu trong triển khai các phần mềm. Nếu thời gian không chính xác thì chúng ta có thể gặp tình trạng hỏng dữ liệu, lỗi và các vấn đề khác khó gỡ lỗi. Đồng bộ hóa thời gian giúp chúng ta đảm bảo nhật ký của chúng ta được ghi theo đúng thứ tự và các cập nhật cơ sở dữ liệu được áp dụng thích hợp.

Mặc định Ubuntu 22.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 cách sử dụng dịch vụ timeyncd của systemd.

Các lệnh thời gian cơ bản

Xem thời gian trên server.

Để xem thời gian trên server chúng ta sử dụng lệnh date.

bash (non-root)
date
Kết quả
Fri Jul 29 13:25:40 +07 2022

Xem danh sách múi giờ.

Để liệt kê danh sách các múi giờ có sẵn chúng ta chạy lệnh sau:

bash (non-root)
timedatectl list-timezones
Kết quả
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/Conakry
Africa/Dakar
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Douala
Africa/El_Aaiun
Africa/Freetown
Africa/Gaborone
Africa/Harare
Africa/Johannesburg
Africa/Juba
Africa/Kampala
Africa/Khartoum

lines 1-58

Danh sách các múi giờ sẽ in ra màn hình của chúng ta. Chúng ta có thể nhấn phím cách để xuống trang và phím b để lên trang, phím q để thoát khỏi danh sách.

Sửa múi giờ.

Để thể thay đổi múi giờ chúng ta dùng timedatectl set-timezone. Chúng ta sẽ sử dụng sudo với timedatectl.

Ví dụ chúng ta đổi múi giờ sang America/New_York như sau:

bash (non-root)
sudo timedatectl set-timezone America/New_York

Chúng ta có thể xác nhận thay đổi bằng chạy lại lệnh date.

bash (non-root)
date
Kết quả
Fri Jul 29 03:20:39 EDT 2022

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

Kiểm soát timesyncd với timedatectl.

Chúng ta có thể truy vấn trạng thái của timesyncd bằng cách chạy timedatectl.

bash (non-root)
timedatectl
Kết quả
               Local time: Fri 2022-07-29 14:33:24 +07
           Universal time: Fri 2022-07-29 07:33:24 UTC
                 RTC time: Fri 2022-07-29 07:33:24
                Time zone: Asia/Saigon (+07, +0700)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Lệnh này in ra giờ địa phương, giờ quốc tế (có thể giống với giờ địa phương, nếu chúng ta không chuyển từ múi giờ UTC).

System clock synchronized: yes - Có nghĩa thời gian đã được đồng bộ hóa thành công.

NTP service: active - Có nghĩa timesyncd đã được thiết lập và chạy.

Chuyển sang ntpd

Tắt timesyncd.

Trước khi cài đặt ntpd, chúng ta cần tắt timesyncd để ngăn hai dịch vụ xung đột với nhau. chúng ta có thể thực hiện việc này bằng cách tắt đồng bộ hóa thời gian mạng bằng lệnh sau:

bash (non-root)
sudo timedatectl set-ntp no

Xác minh rằng đồng bộ thời gian bị tắt:

bash (non-root)
timedatectl
Kết quả
               Local time: Fri 2022-07-29 15:06:25 +07
           Universal time: Fri 2022-07-29 08:06:25 UTC
                 RTC time: Fri 2022-07-29 08:06:25
                Time zone: Asia/Saigon (+07, +0700)
System clock synchronized: yes
              NTP service: inactive
          RTC in local TZ: no

Chúng ta thấy NTP service: inactive là timesyncd đã dừng lại.

Cài đặt ntp.

Trước tiên chúng ta chạy apt update để làm mới các package.

bash (non-root)
sudo apt update

Tiếp theo chúng ta cài ntp với lệnh sau.

bash (non-root)
sudo apt install ntp

ntpd sẽ tự động bắt đầu sau khi quá trình cài đặt của bạn hoàn tất. Chúng ta có thể xác minh rằng mọi thứ đang hoạt động chính xác bằng cách truy vấn thông tin trạng thái ntpd.

bash (non-root)
ntpq -p
Kết quả
     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
+time.cloudflare 10.23.8.4        3 u   21   64    3   26.935   +2.188   0.835
*time.cloudflare 10.23.8.4        3 u   24   64    3   26.181   +1.226   0.651
 2620:2d:4000:1: 17.253.34.125    2 u   28   64    3  195.567  -13.329   0.602
 2620:2d:4000:1: 17.253.34.123    2 u   29   64    3  186.951   -8.640   0.572
 2620:2d:4000:1: 17.253.34.125    2 u   28   64    3  197.869  -13.257   0.600
  • ntpq là một công cụ truy vấn cho ntpd.

  • -p Tham số yêu cầu thông tin về máy chủ NTP (hoặc máy chủ ngang hàng) ntpd được kết nối tới.

Cấu hình ntp.

Máy chủ NTP được cấu hình sẵn với một số nhóm máy chủ đã có, mà chúng ta có thể thấy bên trong tệp. /etc/ntp.conf

/etc/ntp.conf
# Specify one or more NTP servers.

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.

server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org

# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details.  The web page <http://support.ntp.org/bin/view/Support/AccessRestric>
# might also be helpful.

Để thêm các vùng gần vị trí của chúng ta nhất, chúng ta truy cập trang web support.ntp.org và chọn vị trí của chúng ta.

ntp Ví dụ: nếu chúng ta chọn Châu Á, chúng ta sẽ thấy danh sách các nhóm như sau. ntp Trong tệp cấu hình, chúng ta loại bỏ danh sách các vùng mặc định và chèn danh sách các vùng mà chúng ta đã sao chép từ trang web support.ntp.org.

/etc/ntp.conf
# Specify one or more NTP servers.

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.

server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org

# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details.  The web page <http://support.ntp.org/bin/view/Support/AccessRestric>
# might also be helpful.

Sau khi thực hiện các thay đổi đối với file /etc/ntp.conf, chúng ta hãy khởi động lại dịch vụ NTP bằng lệnh sau:

bash (non-root)
sudo service ntp restart

Kiểm tra trạng thái của NTP.

bash (non-root)
systemctl status ntp
Kết quả
● ntp.service - Network Time Service
     Loaded: loaded (/lib/systemd/system/ntp.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-08-08 11:35:20 +07; 15min ago
       Docs: man:ntpd(8)
    Process: 3294642 ExecStart=/usr/lib/ntp/ntp-systemd-wrapper (code=exited, status=0/SUCCESS)
   Main PID: 3294652 (ntpd)
      Tasks: 2 (limit: 3528)
     Memory: 1.5M
        CPU: 147ms
     CGroup: /system.slice/ntp.service
             └─3294652 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 111:116

Aug 08 11:35:20 vps02 ntpd[3294652]: Listen normally on 6 lo [::1]:123
Aug 08 11:35:20 vps02 ntpd[3294652]: Listen normally on 7 ens3 [2401:c440:0:1255:f816:3eff:fe85:e80]:123
Aug 08 11:35:20 vps02 ntpd[3294652]: Listen normally on 8 ens3 [fe80::f816:3eff:fe85:e80%2]:123
Aug 08 11:35:20 vps02 ntpd[3294652]: Listen normally on 9 ens4 [fe80::f816:3eff:fec6:52d3%3]:123
Aug 08 11:35:20 vps02 ntpd[3294652]: Listen normally on 10 docker0 [fe80::42:ceff:febb:f263%4]:123
Aug 08 11:35:20 vps02 ntpd[3294652]: Listen normally on 11 veth6e0e212 [fe80::f481:2ff:fe24:43fb%8]:123
Aug 08 11:35:20 vps02 ntpd[3294652]: Listening on routing socket on fd #28 for interface updates
Aug 08 11:35:20 vps02 ntpd[3294652]: kernel reports TIME_ERROR: 0x2041: Clock Unsynchronized
Aug 08 11:35:20 vps02 ntpd[3294652]: kernel reports TIME_ERROR: 0x2041: Clock Unsynchronized
Aug 08 11:35:20 vps02 systemd[1]: Started Network Time Service.

Chúng ta xem lại thông tin trạng thái đồng bộ hóa NTP và thời gian hệ thống.

bash (non-root)
ntpq -p
Kết quả
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ntp-b2.nict.go. .INIT.          16 u    -   64    0    0.000   +0.000   0.000
 time3.isu.net.s .INIT.          16 u    -   64    0    0.000   +0.000   0.000
 ipv6-dev.maxind 10.79.16.12      3 u    9   64    1   63.016   -9.914   0.000
 121.174.142.81  .INIT.          16 u    -   64    0    0.000   +0.000   0.000

Khởi động ntp cùng hệ thống.

Để ntp khởi động cùng hệ thống chúng ta dùng lệnh sau:

bash (non-root)
systemctl enable ntp
Kết quả
Synchronizing state of ntp.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ntp

Tổng kết

Trong bài viết này chúng ta đã hướng dẫn xem giờ hệ thống, thay đổi múi giờ, làm việc với dịch vụ timesyncd mặc định của Ubuntu và cài đặt ntpd. Hy vọng bài này sẽ giúp cho các bạn quản lý tốt thời gian trên hệ thống của các bạn.


Bạn có làm được theo hướng dẫn này không?

Bài liên quan

Lệnh xác định vị trí của tệp hoặc thư mục trên Linux
Lệnh xác định vị trí của tệp hoặc thư mục trên Linux
Lệnh kiểm tra nhiều cổng port đang mở của một tên miền trên Linux
Lệnh kiểm tra nhiều cổng port đang mở của một tên miền trên Linux
Lệnh tạo một dãy số tăng dần trên Linux
Lệnh tạo một dãy số tăng dần trên Linux

Object Storage

Chuẩn S3, không giới hạn băng thông

Object Storage

Thuê Server Riêng

Chi phí thấp, cấu hình cao

Thuê Server Riêng
Thông tin tác giả
Bình luận

Tính năng đang được phát triển

Đang tải bình luận
Liên hệ chúng tôi