写点什么

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

  • 2023-04-17
    湖南
  • 本文字数:5980 字

    阅读完需:约 20 分钟

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

一:更新系统时间的方式 1、手动修改通过相关工具来手动修改系统的时间。


2、自动同步使用 NTP 自动同步系统时间。


二:手动修改系统时间 1、date 工具作用:显示和设置系统时间选项:


-d <字符串> 显示字符串所指的日期与时间,比如:"-1 day" 表示当前日期的前一天,必须要加双引号


-s <字符串> 设置当前的时间和日期 #年月日使用(-)分隔,时分秒使用(:)分隔时间格式:

显示时间格式: date [+指定的格式]

相关格式说明:

%T:time,显示时分秒,24小时制(hh:mm:ss)
%F:full date,显示年月日,%Y-%m-%d
复制代码

说明:

Y: 年m:月d:日
H:时M:分S:秒
复制代码


例如:显示年月日时分秒

格式:

date "+%F %T" # 需要用双引号括起来 表示这是一个整体
复制代码


root@ubuntu1804:~# dateTue 28 Mar 2023 11:07:08 AM CST


root@ubuntu1804:~# date +"%F"2023-03-28


root@ubuntu1804:~# date +"%T"11:07:18


root@ubuntu1804:~# date +"%F %T"2023-03-28 11:07:29 只修改年月日:


date -s "20220710" 或 date -s "YYYY-MM-DD" # 时间设置成 2022 年 7 月 10 日 0 时 0 分只修改时分秒:


date -s "hh:mm:ss"全部都改:


date -s "YYYY-YY-DD HH:mm:ss"说明:使用 date 命令修改的时间是临时生效的,重启系统后失效,需要将当前时间和硬件时间同步后才可以持久生效。


2、hwclock 工具作用:实现时间的校对,将硬件时间和系时间进行校对。使用 date 手动修改了时间后,需要使用 hwclock 进行校对。


选项:


-s, --hctosys # 以硬件时钟为准,校正系统时钟


-w, --systohc # 以系统时钟为准,校正硬件时钟说明:clock 是 hwclock 的一个软链接

centos 存在 clock 和 hwclock

[root@Centos8 ~]# ll `which hwclock`-rwxr-xr-x. 1 root root 66928 Jul 22  2020 /usr/sbin/hwclock[root@Centos8 ~]# ll `which clock`lrwxrwxrwx. 1 root root 7 Jul 22  2020 /usr/sbin/clock -> hwclock
复制代码

clock 是 hwclock 的一个软链接,ubuntu 上面只有 hwclock

root@ubuntu1804:~# which clockroot@ubuntu1804:~# which hwclock /sbin/hwclock
复制代码


例如:将系统时间同步到硬件时间

同步的时候没有任何提示

root@ubuntu1804:~# hwclock -w


root@ubuntu1804:~#例如:将硬件时间同步到系统时间

# 同步的时候没有任何提示

root@ubuntu1804:~# hwclock -s3、timedatectl 工具作用:timedatectl 工具可以用来更改时区也可以用来修改系统时间,一般是用来更改时区用的。


查看时区列表:

格式 timedatectl list-timezones

例如:

root@ubuntu1804:~# timedatectl list-timezones Africa/AbidjanAfrica/Accra.......
复制代码


修改时区:

格式

timedatectl set-timezone 时区
复制代码

例如:修改时区 修改时区无任何提示

root@ubuntu1804:~# timedatectl set-timezone Asia/Shanghai
复制代码


修改日期时间:


timedatectl set-time "2017-01-23 10:30:00" # YYYY-mm-dd HH-MM-SS 开启 NTP:


timedatectl set-ntp true/false 通过软链接的方式修改时区:

存放时区信息 /etc/timezone

root@ubuntu1804:~# cat /etc/timezoneAsia/Shanghai
复制代码

修改时区影响的文件 /etc/localtime

例如

root@ubuntu2004:~# rm -f /etc/localtime  #更改时区最终收到影响的文件:/etc/localtimeroot@ubuntu2004:~# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
复制代码


root@ubuntu1804:~# ll /etc/localtimelrwxrwxrwx 1 root root 35 Mar 28 11:20 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai 三:使用 NTP 自动同步时间 NTP(Network Time Protocol)协议,网络时间协议。利用 ntp 协议可以实现网络中的计算机时间同步。


1、ntpdate 工具作用:利用时间同步服务器的时间来校准本机的时间,使用互联网上的时间同步服务器需要连接互联网


格式:


ntpdate server_host 例如: 使用 ntpdate 同步时间


root@ubuntu1804:~# apt install ntpdate


root@ubuntu1804:~# dateTue Dec 13 15:12:07 CST 2022


root@ubuntu1804:~# date -d '-1 day'Mon Dec 12 15:12:22 CST 2022


root@ubuntu1804:~# ntpdate ntp.aliyun.com13 Dec 15:12:36 ntpdate[15040]: adjust time server 203.107.6.88 offset 0.002588 sec


root@ubuntu1804:~# dateTue Dec 13 15:12:40 CST 2022 #同步后的时间 2、ntp 工具作用:利用时间同步服务器的时间来校准本机的时间,能持久同步时间而不是一次同步。说明:ntp 工具是客户端和服务器都是一个工具,默认作为客户端使用。


ntp 作为客户端:可以用来校准本地时间为其它 ntp 服务器的时间


ntp 作为服务端:用来搭建 ntp 时间服务器,其它主机同步本机时间


ntp 的客户端工具:


ntpq 工具:是 ntp 的命令行工具,用于查询和控制 NTP 服务器,并获取与服务器时间同步的信息。

查看 NTP 服务器状态:显示当前计算机与所有已配置 NTP 服务器之间的时间同步状态

ntpq -p

查看 NTP 服务器系统状态:显示每个 NTP 服务器的系统状态信息

ntpq -c sysstat

查看计算机与 NTP 服务器之间的同步状态:示计算机与 NTP 服务器之间的同步状态,包括时间差和延迟等信息

ntpq -c loopstats3、chrony 工具作用:利用时间同步服务器的时间来校准本机的时间,能持久同步时间而不是一次同步。同步的精度和速度比 ntp 更快。


端口:


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


chrony 作为服务端:用来搭建 ntp 时间服务器,其它主机同步本机时间


chrony 的客户端工具:


chronyc 工具:用于管理和监控 NTP(网络时间协议)客户端的命令行工具

检查 NTP 服务器的状态:显示当前的时间误差,NTP 服务器的状态,NTP 版本号等信息。

chronyc tracking

查看可用的 NTP 服务器列表:查看本地计算机与 NTP 服务器之间的连接状态

chronyc sources

调整时钟频率:立即调整系统时钟,使其与 NTP 服务器同步

chronyc makestep

显示当前的活动:显示 NTP 守护进程的当前状态,例如它是否正在向其他 NTP 服务器发送请求或接收响应。

chronyc activity 四:NTP 的配置通过将一台主机搭建为时间服务器,其它局域网内的主机可以和本机的时间进行同步。


1、ntp 工具作为客户端:


只需要在配置文件中指定 ntp 服务器的地址就行


root@ubuntu1804:~# vim /etc/ntp.confpool ntp.aliyun.com iburst # iburst 表示加速同步作为服务端:将本机时间作为标准,以此给其它主机同步时间。

以本机时间为准,允许所有用户进行同步

root@ubuntu1804:~# vim /etc/ntp.confserver 127.127.1.0fudge 127.127.1.0 stratum 10restrict defaultrestrict:


restrict:用于限制哪些主机或网络可以与时间服务器进行通信。默认是 restrict default 允许所有主机同步配置 restrict 参数可以帮助保护时间服务器免受不必要的流量和安全攻击。

格式 restrict [IP] [mask] [netmask_IP] [patameter]

参数

default  # 默认参数,表示没有限制。这意味着任何客户端都可以访问该服务器并进行时间同步ignore   # 表示忽略所有的 NTP 请求,这意味着客户端无法与服务器进行时间同步。nomodify # 表示客户端无法修改服务器的时间设置noquery  # 表示客户端无法查询服务器的状态信息,例如版本号、偏差等。limited  # 表示限制客户端的访问速率,防止客户端过于频繁地请求时间同步。ntpport  #  指定允许访问服务器的 NTP 端口范围
复制代码

例如:

允许所有客户端访问服务器 (默认)

restrict default 
复制代码

限制只有同一个局域网内的主机可以同步时间

restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
复制代码

限制来自 192.168.1.0/24 子网范围内的主机只能通过 1234 端口访问 NTP 服务器,而不允许使用其他端口访问。

restrict 192.168.1.0 mask 255.255.255.0 ntpport 1234”

限制来自 192.168.1.0/24 网段的所有主机,禁止其查询服务器,并且不信任该网段的主机。

restrict 192.168.1.0 mask 255.255.255.0 noquery notrust

局域网里面搭建 ntp 就使用这个进行限制。

# 允许192.168.0.0网段访问时间服务器,但是不能修改时间服务器的一些配置。    #   modify 表示禁止客户端修改服务器的时间设置,notrap 表示禁止客户端使用 trap 操作。
复制代码


restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap2、chrony 工具作为客户端:只需要使用 server 或 pool 指定 ntp 服务器的地址就行了。


root@ubuntu1804:~# vim /etc/chrony/chrony.confserver ntp.aliyun.com 作为服务端:将本机时间作为标准,其它主机的时间同步本机时间。


因为 chrony 默认是作为客户端使用的,即服务端的 123 端口默认没开,需要在配置文件中使用 allow 指定才会切换为服务端模式。

修改改配置文件

root@ubuntu1804:~# vim /etc/chrony/chrony.confserver 127.127.1.0


fudge 127.127.1.0 stratum 10


local stratum 10 # 使用本地硬件时钟作为时间源,并将同步级别设置为 10,表示该服务器的时间较准确 allow 0.0.0.0/0 # 指定允许同步的网段 表示的是任何主机都可以和本机进行时间的同步

fudge 这行是时间服务器的层次。设为 0 则为顶级,如果要向别的 NTP 服务器更新时间,请不要把它设为 0

说明:


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

安装 ntp 服务

root@ubuntu1804:~# apt install ntp

只需要在配置文件中加入这个就行

root@ubuntu1804:~# vim /etc/ntp.confpool ntp.aliyun.com

查看 NTP 服务器状态

root@ubuntu1804:~# ntpq -premote refid st t when poll reach delay offset jitter

ntp.aliyun.com .POOL. 16 p - 64 0 0.000 0.000 0.000

查看同步后的时间

root@ubuntu1804:~# dateWed Mar 29 14:08:54 CST 2023 使用 ntp 搭建本地时间服务器搭建好后需要等待 5-10 分钟才行

修改客户端时间用于测试

root@ubuntu1804:~# date -s "20220329"Tue Mar 29 00:00:00 CST 2022

1. 修改服务端配置文件

root@ubuntu1804:~# vim /etc/ntp.confpool ntp.aliyun.com iburstserver 127.0.0.1 iburstfudge 127.127.1.0 stratum 10restrict source 10.0.0.0 mask 255.255.255.0 nomodify

2. 查询和显示 NTP 服务器的状态

root@ubuntu1804:/var/log/ntpstats# ntpstatsynchronised to local net at stratum 11time correct to within 199 mspolling server every 64 s

查看同步信息 没带星号说明还没开始同步

root@ubuntu1804:/var/log/ntpstats# ntpq -premote refid st t when poll reach delay offset jitter

LOCAL(0) .LOCL. 10 l 11 64 37 0.000 0.000 0.000

带星号说明已经开始同步

root@ubuntu1804:/var/log/ntpstats# ntpq -premote refid st t when poll reach delay offset jitter

*LOCAL(0) .LOCL. 10 l 54 64 377 0.000 0.000 0.000

3. 客户端时间同步

root@ubuntu1804:~# ntpdate 10.0.0.2215 Oct 00:19:27 ntpdate[3631]: no server suitable for synchronization found

服务端配置好后,需要等 5-10 分钟左右才能同步成功,否则就会出现上面的提示

root@ubuntu1804:~# ntpdate 10.0.0.2229 Mar 17:42:59 ntpdate[3632]: step time server 10.0.0.22 offset 14318478.924123 sec

查看更新后的时间

root@ubuntu1804:~# dateWed Mar 29 16:15:44 CST 2023


2、chrony 工具使用 chrony 同步 ntp 服务器上的时间

将本机时间修改为一个错误时间测试

root@ubuntu1804:~# dateTue Mar 29 00:00:55 CST 2022

安装服务

root@ubuntu1804:~# apt install chrony

修改配置文件

root@ubuntu1804:~# vim /etc/chrony/chrony.confpool ntp.aliyun.com iburst

重启服务

root@ubuntu1804:~# systemctl restart chronyd.service

查看本地计算机与 NTP 服务器之间的连接状态

root@ubuntu1804:~# chronyc sources210 Number of sources = 1MS Name/IP address Stratum Poll Reach LastRx Last sample

^? 203.107.6.88 2 6 1 31 -8775h[ -8775h] +/- 31ms

查看有多少个 ntp 源在线

root@ubuntu1804:~# chronyc activity200 OK1 sources online0 sources offline0 sources doing burst (return to online)0 sources doing burst (return to offline)0 sources with unknown address


root@ubuntu1804:~# dateWed Mar 29 14:38:41 CST 2023


使用 chrony 搭建本地时间服务器

客户端时间设置

root@ubuntu1804:~# date -s "20220228"Mon Feb 28 00:00:00 CST 2022

服务器配置

root@ubuntu1804:~# vim /etc/chrony/chrony.confserver 127.0.0.1 iburst

fudge 127.127.1.0 stratum 10

local stratum 10allow 0.0.0.0/0

重启服务

root@ubuntu1804:~# systemctl restart chronyd.service

查看有多少个 ntp 源在线

root@ubuntu1804:~# chronyc activity200 OK0 sources online0 sources offline1 sources doing burst (return to online)0 sources doing burst (return to offline)0 sources with unknown address

显示本机时间和远程服务器同步的情况

root@ubuntu1804:~# chronyc sources210 Number of sources = 1MS Name/IP address Stratum Poll Reach LastRx Last sample

^* localhost 10 6 177 9 -38ns[ +535ns] +/- 1362ns

客户端同步时间

root@ubuntu1804:~# ntpdate 10.0.0.2229 Mar 14:58:27 ntpdate[3607]: adjust time server 10.0.0.22 offset -0.020780 secroot@ubuntu1804:~# dateWed Mar 29 14:58:29 CST 2023


(51 条消息) NTP 服务器配置_ntp 配置_Resines 的博客-CSDN 博客


六:Windows 搭建和使用 NTP 服务器 1、windows 搭建 NTP 服务器(1)修改注册表启动 NTP server


快捷键 win + R 打开“运⾏”菜单,输⼊regedit 打开 Windows 注册表修改注册表配置,设定授权时间服务器“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config”[AnnounceFlags]修改设定值为 5


修改注册表配置启动 ntp 服务器:


“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer”[Enabled]数值修改为 1


(2)重启 WindowsTime 服务

管理员模式下 cmd 终端执⾏以下命令:

net stop w32timenet start w32time


2、windows 使用 NTP 服务器(1)将 WindowsTime 服务设置自动启动


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


(2)指定 ntp 服务器的地址


⿏标右击电脑左下⻆的时间,打开:调整⽇期/时间(A)选择添加不同时区的时钟


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

用户头像

喜欢就点个关注吧~ 2023-04-10 加入

持续更新Java

评论

发布
暂无评论
Linux 修改系统时间的两种方式_Java_会踢球的程序源_InfoQ写作社区