写在前面
① 多台计算机协同工作的系统里,时间非常重要,就像特战剧中的桥段,小组分开行动时,先计划好方案,然后就开始对表
② 即使是计算机,长时间运行,系统时钟也会产生偏差
③ NTP(Network Time Protocol)是用来使网络中的各计算机时间保持一致的一种协议
④ NTP分Server端和Client端,Server就是授时器,与其链接的Client都以它的时间为准,更新自己的时间
⑤ 本篇的内容是设置Client端
检查是否有开启ntp
$ timedatectl
Local time: Fri 2020-10-30 11:19:59 CST # 本地时间(本例是东八区)
Universal time: Fri 2020-10-30 03:19:59 UTC # 协调世界时(格林尼治时间)
RTC time: Fri 2020-10-30 03:19:58 # 硬件时钟
Time zone: Asia/Shanghai (CST, +0800) # 时区
NTP enabled: no # NTP状态,no表示未开启
NTP synchronized: no # NTP同步状态
RTC in local TZ: no # 硬件时钟是否为本地时区
DST active: n/a
安装ntp
$ aptitude -y install ntp # centos 请用yum -y install ntp
$ ntpq -p # 查看可与之同步的公共server列表
remote refid st t when poll reach delay offset jitter
==============================================================================
+119.28.206.193 100.122.36.4 2 u 37 1024 337 158.919 4.780 0.771
+ntp.truenetwork 46.254.241.74 2 u 574 1024 377 222.132 6.056 3.549
*telesto.host.st 131.188.3.222 2 u 739 1024 175 153.895 7.001 2.332
-nyc1.pawnode.co 198.211.103.209 3 u 710 1024 377 67.564 4.400 0.821
开启同步
$ timedatectl set-ntp true # false 则为关闭
$ timedatectl # 检查下开启状态
Local time: Fri 2020-10-30 11:50:23 CST
Universal time: Fri 2020-10-30 03:50:23 UTC
RTC time: Fri 2020-10-30 03:50:23
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
补充一些timedatectl的命令
-
查看可用时区
$ timedatectl list-timezones $ timedatectl list-timezones | egrep -o "Asia/S.*" # 或配合管道符筛选 Asia/Sakhalin Asia/Samarkand Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Srednekolymsk
-
设置时区
$ timedatectl set-timezone "Asia/Shanghai" $ timedatectl set-timezone UTC # 或设置协调世界时
-
设置时钟(如果有ntp,不建议手动设置)
$ timedatectl set-time 11:37:00 # 只设置时间 $ timedatectl set-time 2020-10-31 # 只设置日期 $ timedatectl set-time '11:37:00 2020-10-31' # 时间日期一起设置
-
设置硬件时钟
$ timedatectl set-local-rtc 1 # 把硬件时钟设为本地时区 $ timedatectl set-local-rtc 0 # 把硬件时钟设为协调世界时(UTC)