翼度科技»论坛 云主机 LINUX 查看内容

Linux 修改系统时间的两种方式

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
一:更新系统时间的方式

1、手动修改

通过相关工具来手动修改系统的时间。
2、自动同步

使用NTP自动同步系统时间。
二:手动修改系统时间

1、date工具

作用:显示和设置系统时间
选项:
  1. -d  <字符串> 显示字符串所指的日期与时间,比如:"-1 day" 表示当前日期的前一天,必须要加双引号
  2. -s  <字符串> 设置当前的时间和日期 #年月日使用(-)分隔,时分秒使用(:)分隔
复制代码
时间格式:
  1. # 显示时间格式: date [+指定的格式]
  2. # 相关格式说明:
  3.     %T:time,显示时分秒,24小时制(hh:mm:ss)
  4.     %F:full date,显示年月日,%Y-%m-%d
  5. # 说明:
  6.     Y: 年
  7.     m:月
  8.     d:日
  9.     H:时
  10.     M:分
  11.     S:秒
复制代码
例如:显示年月日时分秒
  1. # 格式:
  2.         date "+%F %T" # 需要用双引号括起来 表示这是一个整体
  3. root@ubuntu1804:~# date
  4. Tue 28 Mar 2023 11:07:08 AM CST
  5. root@ubuntu1804:~# date +"%F"
  6. 2023-03-28
  7. root@ubuntu1804:~# date +"%T"
  8. 11:07:18
  9. root@ubuntu1804:~# date +"%F %T"
  10. 2023-03-28 11:07:29
复制代码
只修改年月日:
  1. date -s "20220710" 或  date -s "YYYY-MM-DD"  # 时间设置成2022年7月10日0时0分
复制代码
只修改时分秒:
  1. date -s "hh:mm:ss"
复制代码
全部都改:
  1. date -s "YYYY-YY-DD HH:mm:ss"
复制代码
说明:
使用date命令修改的时间是临时生效的,重启系统后失效,需要将当前时间和硬件时间同步后才可以持久生效。
2、hwclock工具

作用:实现时间的校对,将硬件时间和系时间进行校对。使用date手动修改了时间后,需要使用hwclock进行校对。
选项:
  1. -s, --hctosys         # 以硬件时钟为准,校正系统时钟
  2. -w, --systohc         # 以系统时钟为准,校正硬件时钟
复制代码
说明:clock是hwclock的一个软链接
  1. # centos存在clock和hwclock
  2.     [root@Centos8 ~]# ll `which hwclock`
  3.     -rwxr-xr-x. 1 root root 66928 Jul 22  2020 /usr/sbin/hwclock
  4.     [root@Centos8 ~]# ll `which clock`
  5.     lrwxrwxrwx. 1 root root 7 Jul 22  2020 /usr/sbin/clock -> hwclock
  6. # clock是hwclock的一个软链接,ubuntu上面只有hwclock
  7.     root@ubuntu1804:~# which clock
  8.     root@ubuntu1804:~# which hwclock
  9.     /sbin/hwclock
复制代码
例如:将系统时间同步到硬件时间
  1. # 同步的时候没有任何提示
  2. root@ubuntu1804:~# hwclock -w  
  3. root@ubuntu1804:~#
复制代码
例如:将硬件时间同步到系统时间
  1. # # 同步的时候没有任何提示
  2. root@ubuntu1804:~# hwclock -s
复制代码
3、timedatectl 工具

作用:timedatectl 工具可以用来更改时区也可以用来修改系统时间,一般是用来更改时区用的。
查看时区列表:
  1. # 格式  timedatectl list-timezones
  2. # 例如:
  3.     root@ubuntu1804:~# timedatectl list-timezones
  4.     Africa/Abidjan
  5.     Africa/Accra
  6.     .......
复制代码
修改时区:
  1. #   格式
  2.         timedatectl set-timezone 时区
  3.        
  4. # 例如:修改时区      修改时区无任何提示
  5.         root@ubuntu1804:~# timedatectl set-timezone Asia/Shanghai
复制代码
修改日期时间:
  1. timedatectl set-time "2017-01-23 10:30:00" # YYYY-mm-dd HH-MM-SS
复制代码
开启NTP:
  1. timedatectl set-ntp true/false
复制代码
通过软链接的方式修改时区:
  1. # 存放时区信息       /etc/timezone
  2.         root@ubuntu1804:~# cat /etc/timezone
  3.         Asia/Shanghai
  4. # 修改时区影响的文件  /etc/localtime
  5. # 例如
  6.         root@ubuntu2004:~# rm -f /etc/localtime  #更改时区最终收到影响的文件:/etc/localtime
  7.     root@ubuntu2004:~# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  8. root@ubuntu1804:~# ll  /etc/localtime
  9. lrwxrwxrwx 1 root root 35 Mar 28 11:20 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
复制代码
三:使用NTP自动同步时间

NTP(Network Time Protocol)协议,网络时间协议。利用ntp协议可以实现网络中的计算机时间同步。
1、ntpdate工具

作用:利用时间同步服务器的时间来校准本机的时间,使用互联网上的时间同步服务器需要连接互联网
格式:
  1. ntpdate server_host
复制代码
例如: 使用ntpdate同步时间
  1. root@ubuntu1804:~# apt install ntpdate
  2. root@ubuntu1804:~# date
  3. Tue Dec 13 15:12:07 CST 2022
  4. root@ubuntu1804:~# date -d '-1 day'
  5. Mon Dec 12 15:12:22 CST 2022
  6. root@ubuntu1804:~# ntpdate ntp.aliyun.com
  7. 13 Dec 15:12:36 ntpdate[15040]: adjust time server 203.107.6.88 offset 0.002588 sec
  8. root@ubuntu1804:~# date
  9. Tue Dec 13 15:12:40 CST 2022  #同步后的时间
复制代码
2、ntp工具

作用:利用时间同步服务器的时间来校准本机的时间,能持久同步时间而不是一次同步。
说明:ntp工具是客户端和服务器都是一个工具,默认作为客户端使用。
ntp作为客户端:可以用来校准本地时间为其它ntp服务器的时间
ntp作为服务端:用来搭建ntp时间服务器,其它主机同步本机时间
ntp的客户端工具:

  • ntpq工具:是ntp的命令行工具,用于查询和控制 NTP 服务器,并获取与服务器时间同步的信息。
  1. # 查看 NTP 服务器状态:显示当前计算机与所有已配置 NTP 服务器之间的时间同步状态
  2. ntpq -p
  3. # 查看 NTP 服务器系统状态:显示每个 NTP 服务器的系统状态信息
  4. ntpq -c sysstat
  5. # 查看计算机与 NTP 服务器之间的同步状态:示计算机与 NTP 服务器之间的同步状态,包括时间差和延迟等信息
  6. ntpq -c loopstats
复制代码
3、chrony工具

作用:利用时间同步服务器的时间来校准本机的时间,能持久同步时间而不是一次同步。同步的精度和速度比ntp更快。
端口:

  • 服务端udp的123端口,如果chrony开启了客户端功能的话,会对123\udp端口进行监听。
  • 客户端监听udp的323端口,作用同上。
chrony作为客户端:可以用来校准本地时间为其它ntp服务器的时间
chrony作为服务端:用来搭建ntp时间服务器,其它主机同步本机时间
chrony的客户端工具:

  • chronyc工具:用于管理和监控 NTP(网络时间协议)客户端的命令行工具
  1. # 检查 NTP 服务器的状态:显示当前的时间误差,NTP 服务器的状态,NTP 版本号等信息。
  2. chronyc tracking
  3. # 查看可用的 NTP 服务器列表:查看本地计算机与 NTP 服务器之间的连接状态
  4. chronyc sources
  5. # 调整时钟频率:立即调整系统时钟,使其与 NTP 服务器同步
  6. chronyc makestep
  7. # 显示当前的活动:显示 NTP 守护进程的当前状态,例如它是否正在向其他 NTP 服务器发送请求或接收响应。
  8. chronyc activity
复制代码
四:NTP的配置

通过将一台主机搭建为时间服务器,其它局域网内的主机可以和本机的时间进行同步。
1、ntp工具

作为客户端:
只需要在配置文件中指定ntp服务器的地址就行
  1. root@ubuntu1804:~# vim /etc/ntp.conf
  2. pool ntp.aliyun.com iburst # iburst表示加速同步
复制代码
作为服务端:
将本机时间作为标准,以此给其它主机同步时间。
  1. # 以本机时间为准,允许所有用户进行同步
  2. root@ubuntu1804:~# vim /etc/ntp.conf
  3. server  127.127.1.0
  4. fudge   127.127.1.0 stratum 10
  5. restrict default
复制代码
restrict:

  • restrict:用于限制哪些主机或网络可以与时间服务器进行通信。默认是restrict default允许所有主机同步
  • 配置restrict参数可以帮助保护时间服务器免受不必要的流量和安全攻击。
  1. # 格式  restrict [IP] [mask] [netmask_IP] [patameter]
  2. # 参数
  3.         default  # 默认参数,表示没有限制。这意味着任何客户端都可以访问该服务器并进行时间同步
  4.         ignore   # 表示忽略所有的 NTP 请求,这意味着客户端无法与服务器进行时间同步。
  5.     nomodify # 表示客户端无法修改服务器的时间设置
  6.     noquery  # 表示客户端无法查询服务器的状态信息,例如版本号、偏差等。
  7.     limited  # 表示限制客户端的访问速率,防止客户端过于频繁地请求时间同步。
  8.         ntpport  #  指定允许访问服务器的 NTP 端口范围
  9. # 例如:
  10. #  允许所有客户端访问服务器 (默认)
  11.         restrict default
  12. # 限制只有同一个局域网内的主机可以同步时间
  13.         restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
  14. # 限制来自192.168.1.0/24子网范围内的主机只能通过1234端口访问NTP服务器,而不允许使用其他端口访问。
  15. restrict 192.168.1.0 mask 255.255.255.0 ntpport 1234”
  16. # 限制来自 192.168.1.0/24 网段的所有主机,禁止其查询服务器,并且不信任该网段的主机。
  17. restrict 192.168.1.0 mask 255.255.255.0 noquery notrust
  18. # 局域网里面搭建ntp就使用这个进行限制。
  19.     # 允许192.168.0.0网段访问时间服务器,但是不能修改时间服务器的一些配置。
  20.         #         modify 表示禁止客户端修改服务器的时间设置,notrap 表示禁止客户端使用 trap 操作。
  21. restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
复制代码
2、chrony工具

作为客户端:
只需要使用server或pool指定ntp服务器的地址就行了。
  1. root@ubuntu1804:~# vim /etc/chrony/chrony.conf
  2. server ntp.aliyun.com
复制代码
作为服务端:
将本机时间作为标准,其它主机的时间同步本机时间。
因为chrony默认是作为客户端使用的,即服务端的123端口默认没开,需要在配置文件中使用allow指定才会切换为服务端模式。
  1. # 修改改配置文件
  2. root@ubuntu1804:~# vim /etc/chrony/chrony.conf
  3.         server 127.127.1.0            
  4.         fudge 127.127.1.0 stratum 10   
  5.     local stratum 10  # 使用本地硬件时钟作为时间源,并将同步级别设置为 10,表示该服务器的时间较准确
  6.     allow 0.0.0.0/0   # 指定允许同步的网段  表示的是任何主机都可以和本机进行时间的同步
  7. # fudge这行是时间服务器的层次。设为0则为顶级,如果要向别的NTP服务器更新时间,请不要把它设为0
复制代码
说明:

  • server:用于指定单个NTP服务器
  • pool:用于指定NTP服务器池而不是单个NTP服务器
  • iburst:让同步时间的时候更快,开启多个并行任务来进行同步
  • prefer:表示如果指定了多个时间服务器的情况下优先用这个
  1. server 192.168.7.49 prefer iburst   # prefer表示如果指定了多个时间服务器的情况下优先用这个 iburst:表示加速时间同步
复制代码
五:具体实现

1、 ntp

使用ntp同步ntp服务器上的时间
  1. # 安装ntp服务
  2. root@ubuntu1804:~# apt install ntp
  3. # 只需要在配置文件中加入这个就行
  4. root@ubuntu1804:~# vim /etc/ntp.conf
  5.         pool ntp.aliyun.com
  6. # 查看 NTP 服务器状态
  7. root@ubuntu1804:~# ntpq  -p
  8.      remote           refid      st t when poll reach   delay   offset  jitter
  9. ==============================================================================
  10. ntp.aliyun.com  .POOL.          16 p    -   64    0    0.000    0.000   0.000
  11. # 查看同步后的时间
  12. root@ubuntu1804:~# date
  13. Wed Mar 29 14:08:54 CST 2023
复制代码
使用ntp搭建本地时间服务器

搭建好后需要等待5-10分钟才行
  1. # 修改客户端时间用于测试
  2. root@ubuntu1804:~# date -s "20220329"
  3. Tue Mar 29 00:00:00 CST 2022
  4. # 1. 修改服务端配置文件
  5. root@ubuntu1804:~# vim /etc/ntp.conf
  6. pool ntp.aliyun.com iburst
  7. server 127.0.0.1 iburst
  8. fudge  127.127.1.0 stratum 10
  9. restrict source 10.0.0.0 mask 255.255.255.0  nomodify
  10. # 2. 查询和显示NTP服务器的状态
  11. root@ubuntu1804:/var/log/ntpstats# ntpstat
  12. synchronised to local net at stratum 11
  13.    time correct to within 199 ms
  14.    polling server every 64 s
  15.    
  16. # 查看同步信息 没带星号说明还没开始同步
  17. root@ubuntu1804:/var/log/ntpstats# ntpq  -p
  18.      remote           refid      st t when poll reach   delay   offset  jitter
  19. ==============================================================================
  20. LOCAL(0)        .LOCL.          10 l   11   64   37    0.000    0.000   0.000
  21. # 带星号说明已经开始同步
  22. root@ubuntu1804:/var/log/ntpstats# ntpq -p
  23.      remote           refid      st t when poll reach   delay   offset  jitter
  24. ==============================================================================
  25. *LOCAL(0)        .LOCL.          10 l   54   64  377    0.000    0.000   0.000
  26. # 3. 客户端时间同步
  27. root@ubuntu1804:~# ntpdate  10.0.0.22
  28. 15 Oct 00:19:27 ntpdate[3631]: no server suitable for synchronization found
  29. # 服务端配置好后,需要等5-10分钟左右才能同步成功,否则就会出现上面的提示
  30. root@ubuntu1804:~# ntpdate  10.0.0.22
  31. 29 Mar 17:42:59 ntpdate[3632]: step time server 10.0.0.22 offset 14318478.924123 sec
  32. # 查看更新后的时间
  33. root@ubuntu1804:~# date
  34. Wed Mar 29 16:15:44 CST 2023
复制代码

2、chrony工具

使用chrony同步ntp服务器上的时间
  1. # 将本机时间修改为一个错误时间测试
  2. root@ubuntu1804:~# date
  3. Tue Mar 29 00:00:55 CST 2022
  4. # 安装服务
  5. root@ubuntu1804:~# apt install chrony
  6. # 修改配置文件
  7. root@ubuntu1804:~# vim /etc/chrony/chrony.conf
  8. pool ntp.aliyun.com iburst
  9. # 重启服务
  10. root@ubuntu1804:~# systemctl restart chronyd.service
  11. # 查看本地计算机与NTP服务器之间的连接状态
  12. root@ubuntu1804:~# chronyc sources
  13. 210 Number of sources = 1
  14. MS Name/IP address         Stratum Poll Reach LastRx Last sample               
  15. ===============================================================================
  16. ^? 203.107.6.88                  2   6     1    31   -8775h[ -8775h] +/-   31ms
  17. # 查看有多少个ntp源在线
  18. root@ubuntu1804:~# chronyc activity
  19. 200 OK
  20. 1 sources online
  21. 0 sources offline
  22. 0 sources doing burst (return to online)
  23. 0 sources doing burst (return to offline)
  24. 0 sources with unknown address
  25. root@ubuntu1804:~# date
  26. Wed Mar 29 14:38:41 CST 2023
复制代码

使用chrony搭建本地时间服务器
  1. # 客户端时间设置
  2. root@ubuntu1804:~# date  -s "20220228"
  3. Mon Feb 28 00:00:00 CST 2022
  4. # 服务器配置
  5. root@ubuntu1804:~# vim /etc/chrony/chrony.conf
  6. server 127.0.0.1 iburst
  7. # fudge 127.127.1.0 stratum 10
  8. local stratum 10
  9. allow 0.0.0.0/0
  10. # 重启服务
  11. root@ubuntu1804:~# systemctl restart chronyd.service
  12. # 查看有多少个ntp源在线
  13. root@ubuntu1804:~# chronyc activity
  14. 200 OK
  15. 0 sources online
  16. 0 sources offline
  17. 1 sources doing burst (return to online)
  18. 0 sources doing burst (return to offline)
  19. 0 sources with unknown address
  20. # 显示本机时间和远程服务器同步的情况
  21. root@ubuntu1804:~# chronyc sources
  22. 210 Number of sources = 1
  23. MS Name/IP address         Stratum Poll Reach LastRx Last sample               
  24. ===============================================================================
  25. ^* localhost                    10   6   177     9    -38ns[ +535ns] +/- 1362ns
  26. # 客户端同步时间
  27. root@ubuntu1804:~# ntpdate 10.0.0.22
  28. 29 Mar 14:58:27 ntpdate[3607]: adjust time server 10.0.0.22 offset -0.020780 sec
  29. root@ubuntu1804:~# date
  30. Wed Mar 29 14:58:29 CST 2023
复制代码

(51条消息) NTP服务器配置_ntp配置_Resines的博客-CSDN博客
六:Windows搭建和使用NTP服务器

1、windows搭建NTP服务器

(1)修改注册表启动NTP server
  1. 快捷键win + R 打开“运⾏”菜单,输⼊regedit打开Windows注册表
  2. 修改注册表配置,设定授权时间服务器
  3. “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config”
  4. [AnnounceFlags]修改设定值为5
复制代码

修改注册表配置启动ntp服务器:
  1. “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer”
  2. [Enabled]数值修改为1
复制代码

(2)重启WindowsTime服务
  1. # 管理员模式下cmd终端执⾏以下命令:
  2. net stop w32time
  3. net start w32time
复制代码

2、windows使用NTP服务器

(1)将WindowsTime服务设置自动启动
  1. 打开Windows系统服务(Win + R然后输⼊services.msc再回⻋),
  2. 找到Windows Time系统服务,右击更改属性,将其 "启动类型" 改为 "⾃动"。
复制代码

(2)指定ntp服务器的地址
  1. ⿏标右击电脑左下⻆的时间,打开:调整⽇期/时间(A)
  2. 选择添加不同时区的时钟
复制代码

再选择Internet时间,点击:更改设置,勾选上⼩⽅块,服务器选择上⼀步配置的IP地址,点击⽴即更新.


来源:https://www.cnblogs.com/heyongshen/p/17271754.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具