一:更新系统时间的方式
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:~# date
Tue 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 clock
root@ubuntu1804:~# which hwclock
/sbin/hwclock
例如:将系统时间同步到硬件时间
# 同步的时候没有任何提示
root@ubuntu1804:~# hwclock -w
root@ubuntu1804:~#
例如:将硬件时间同步到系统时间
# # 同步的时候没有任何提示
root@ubuntu1804:~# hwclock -s
3、timedatectl 工具
作用:timedatectl 工具可以用来更改时区也可以用来修改系统时间,一般是用来更改时区用的。
查看时区列表:
# 格式 timedatectl list-timezones
# 例如:
root@ubuntu1804:~# timedatectl list-timezones
Africa/Abidjan
Africa/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/timezone
Asia/Shanghai
# 修改时区影响的文件 /etc/localtime
# 例如
root@ubuntu2004:~# rm -f /etc/localtime #更改时区最终收到影响的文件:/etc/localtime
root@ubuntu2004:~# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
root@ubuntu1804:~# ll /etc/localtime
lrwxrwxrwx 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:~# date
Tue 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.com
13 Dec 15:12:36 ntpdate[15040]: adjust time server 203.107.6.88 offset 0.002588 sec
root@ubuntu1804:~# date
Tue 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 -