Computer >> Máy Tính >  >> Hệ thống >> Linux

CentOS:Cách đặt Đồng bộ ngày, giờ, TimeZone và NTP

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách đặt thời gian, ngày tháng, múi giờ, đồng bộ hóa thời gian với máy chủ NTP và khắc phục các sự cố điển hình trong CentOS Linux.

Có hai loại đồng hồ trên máy chủ: phần cứng một (đồng hồ thời gian thực) đang hoạt động ngay cả khi máy chủ tắt và hệ điều hành phần mềm cái đồng hồ. Thời gian trên các đồng hồ này có thể khác nhau. Sau khi khởi động hệ điều hành, đồng hồ phần mềm dựa trên phần cứng và có thể được điều chỉnh bởi hệ điều hành.
Hầu hết các ứng dụng sử dụng đồng hồ phần mềm trong hoạt động của chúng.

Hwclock:Cấu hình thời gian phần cứng

Hwclock được sử dụng để kiểm tra thời gian phần cứng trong Linux:

  • hwclock --localtime - kiểm tra thời gian phần cứng mà không cần chỉnh sửa
  • hwclock --utc - hiển thị thời gian nếu đồng hồ phần cứng hiển thị thời gian UTC

# hwclock --localtime

2020-10-12 06:12:02.912866-04:00

# hwclock --utc

2020-10-12 02:12:18.915319-04:00

Để đặt thời gian phần cứng theo thời gian hệ thống, hãy chạy lệnh sau:
# hwclock --systohc
Để đặt thời gian phần cứng bạn muốn, hãy chạy như sau:
# hwclock --set --date "11 Oct 2020 17:30"

CentOS:Cách đặt Đồng bộ ngày, giờ, TimeZone và NTP

Cấu hình thời gian thủ công trong CentOS

Trong Linux, ngày hoặc hẹn giờ các công cụ được sử dụng để kiểm tra và thiết lập thời gian phần mềm. Nếu bạn gọi đến ngày mà không có bất kỳ thông số nào, nó sẽ hiển thị thời gian hiện tại trên máy chủ của bạn:

# date

Sun Oct 11 22:14:54 EDT 2020

Nếu bạn muốn đặt thời gian theo cách thủ công, bạn có thể sử dụng ngày với các tham số bổ sung:

# date MMDDhhmm

Ví dụ:

# date 10261740

CentOS:Cách đặt Đồng bộ ngày, giờ, TimeZone và NTP

Để nhận thông tin mở rộng về ngày, giờ, múi giờ, cài đặt đồng bộ hóa, cài đặt giờ tiết kiệm ánh sáng ban ngày (DST), tính giờ Được sử dụng. Nó cung cấp thông tin chi tiết hơn về cài đặt thời gian trên máy chủ.

CentOS:Cách đặt Đồng bộ ngày, giờ, TimeZone và NTP

Timedatectl cũng cho phép thay đổi thời gian:

# timedatectl set-time '2020-10-11 17:51:00'

Cách đặt TimeZone trong CentOS?

Để đặt thời gian theo múi giờ của bạn trên CentOS Linux, bạn có thể thay đổi nó theo cách thủ công. Để làm điều đó, bạn có thể sử dụng hai công cụ:

  • định thời gian
  • tzdata

Để thay đổi múi giờ bằng cách sử dụng timedatectl , chạy lệnh này:

# timedatectl set-timezone Canada/Pacific
# date

CentOS:Cách đặt Đồng bộ ngày, giờ, TimeZone và NTP

Hoặc bạn có thể sử dụng tzdata . Để sử dụng phương pháp này, hãy thay thế tệp / etc / localtime với một trong những bạn cần. Toàn bộ danh sách múi giờ nằm ​​ở /usr/share/zoneinfo/ danh mục. Hãy thay đổi múi giờ thành Canada / Thái Bình Dương . Sao lưu tệp vị trí hiện tại:

# mv /etc/localtime /etc/localtime.bak

Tạo liên kết biểu tượng cho múi giờ bạn muốn đặt:
# ln -s /usr/share/zoneinfo/Canada/Pacific /etc/localtime

Định cấu hình CentOS để Đồng bộ hóa Thời gian với Máy chủ Thời gian NTP

Bạn có thể định cấu hình đồng bộ hóa thời gian tự động trên máy chủ của mình với máy chủ NTP (Giao thức thời gian mạng) bên ngoài. Để thực hiện, bạn phải cài đặt dịch vụ ntp . Ví dụ:bạn có thể cài đặt nó bằng yum trong CentOS 7:

# yum install ntp -y

Sau khi cài đặt, hãy khởi động dịch vụ ntpd và thêm nó vào khởi động:

# systemctl start ntpd.service
# systemctl enable ntpd.service

Đảm bảo rằng dịch vụ đang chạy:

# service ntpd status

Redirecting to /bin/systemctl status ntpd.service
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-10-11 15:37:33 +06; 5min ago
Main PID: 3057 (ntpd)
CGroup: /system.slice/ntpd.service
└─3057 /usr/sbin/ntpd -u ntp:ntp -g

Chỉ định máy chủ NTP để đồng bộ hóa thời gian với trong / etc/ntp.conf :

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

Lần lượt được đồng bộ thời gian. Nếu máy chủ NTP đầu tiên không khả dụng, máy chủ thứ hai sẽ được sử dụng, v.v.

Bạn có thể đồng bộ hóa thời gian với máy chủ NTP được chỉ định theo cách thủ công bằng lệnh này:

# ntpdate 192.168.1.23

Theo mặc định, ntpd bật “chế độ 11 phút”. Có nghĩa là thời gian sẽ được đồng bộ sau mỗi 11 phút. Nếu bạn không thể sử dụng ntpd daemon, bạn có thể cấu hình đồng bộ hóa thời gian bằng cron. Thêm lệnh sau vào cron:

# ntpdate pool.ntp.org

Làm cách nào để Đồng bộ hóa Thời gian trong CentOS 8 bằng Chronyd?

Trong CentOS 8, bạn sẽ phải sử dụng chrony để đồng bộ hóa thời gian, vì ntp và ntpdate đã bị xóa khỏi kho lưu trữ chính thức .

Những lợi ích chính của chrony là:

  • Đồng bộ hóa thời gian có tốc độ và độ chính xác cao;
  • Hoạt động tốt nếu bạn không có quyền truy cập vào đồng hồ chính (ntpd yêu cầu các yêu cầu thường xuyên);
  • Theo mặc định, thời gian không được sửa đổi ngay sau khi đồng bộ hóa để tránh bất kỳ sự cố nào đối với các chương trình đang chạy;
  • Sử dụng ít tài nguyên hơn.

Theo mặc định, chrony đã được cài đặt trong CentOS Linux, nhưng nếu bạn không có vì lý do nào đó, hãy cài đặt nó:

# dnf install chrony

Giống như bất kỳ dịch vụ nào khác, chrony cần được khởi động và thêm vào khởi động sau khi cài đặt:

# systemctl start chronyd
# systemctl enable chronyd

Kiểm tra trạng thái dịch vụ chronyd:

# systemctl status chronyd

CentOS:Cách đặt Đồng bộ ngày, giờ, TimeZone và NTP

Để đảm bảo rằng đồng bộ hóa thời gian đang hoạt động, hãy chạy lệnh sau:

# timedatectl status

NTP Service: active

CentOS:Cách đặt Đồng bộ ngày, giờ, TimeZone và NTP

Tệp cấu hình Chrony là /etc/chrony.conf . Chỉ định danh sách máy chủ NTP bạn muốn sử dụng để đồng bộ hóa. Thích ntp , chrony có giao diện dòng lệnh: chronyc . Để xem thông tin về các tùy chọn đồng bộ hóa thời gian hiện tại, hãy chạy lệnh sau:

# chronyc tracking

Để xem thông tin về máy chủ đồng bộ hóa:

# chronyc sources

Nếu bạn muốn đặt ngày và giờ cụ thể theo cách thủ công, bạn có thể sử dụng date , nhưng trước đó đã vô hiệu hóa chronyd daemon.

Các vấn đề về đồng bộ thời gian thường gặp trong CentOS

Trong phần này, tôi sẽ mô tả các lỗi điển hình xuất hiện khi làm việc với timedatectl , ntp .

Trong quá trình đồng bộ hóa thời gian thủ công, bạn có thể gặp lỗi này:

# ntpdate pool.ntp.org

ntpdate [26214]: the NTP socket is in use, exiting

Điều này có nghĩa là ntpd daemon đang chạy và ngăn đồng bộ hóa thời gian thủ công. Để đồng bộ hóa thời gian theo cách thủ công, hãy dừng trình nền ntpd:

# service ntpd stop

Và chạy lại đồng bộ hóa.

Lỗi tương tự có thể xảy ra khi làm việc với timedatectl:

Failed to set time: Automatic time synchronization is enabled.

Bạn phải tắt đồng bộ hóa tự động trong hẹn giờ:

# timedatectl set-ntp 0

Và chạy lệnh này để đặt ngày giờ bạn muốn:

# timedatectl set-time '2020-11-12 17:41:00'

Khi làm việc với múi giờ, có thể xảy ra trường hợp chúng không được cài đặt trên máy chủ của bạn và bạn không thể tạo liên kết biểu tượng cho thời gian cục bộ. Để cung cấp múi giờ trên máy chủ của bạn, hãy cài đặt công cụ tzdata:

# yum install tzdata -y

Ngoài ra, bạn có thể gặp một số lỗi trong quá trình đồng bộ hóa thủ công như lỗi sau:

11 Oct 21:11:19 ntpdate[897482]: sendto(xx.xx.xx.98): Operation not permitted

Trong trường hợp này, hãy kiểm tra các quy tắc firewalld / iptables của bạn và đảm bảo rằng Cổng UDP 123 đang mở trên máy chủ của bạn. Ngoài ra, một số máy chủ NTP có thể không khả dụng trong quá trình xác thực.