名词介绍
- UTC:整个地球分为二十四时区,每个时区都有自己的本地时间,在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC:Universal Time Coordinated)。
- GMT:格林威治标准时间 (Greenwich Mean Time)指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线(UTC与GMT时间基本相同)。
- CST:中国标准时间 (China Standard Time)
- GMT + 8 = UTC + 8 = CST
- RTC(Real-Time Clock)或CMOS时间:硬件时间,一般在主板上靠电池供电,服务器断电后也会继续运行。仅保存日期时间数值,无法保存时区和夏令时设置。
- DST:夏令时(Daylight Saving Time) 指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用(中国不使用)。
- NTP service:网络时间协议(Network Time Protocol)
- System clock synchronized:NTP同步情况
- RTC in local TZ:RTC是否使用本地时区
在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。
硬件时间调整
显示RTC硬件时钟与日期hwclock -r
将系统时钟调整为与目前的RTC硬件时钟一致hwclock -s
将RTC硬件时钟调整为与目前的系统时钟一致hwclock -w
系统时间调整
调整系统时间的命令
timedatectl
,基于systemd
,支持CentOS7及以上的系统
查看时区
timedatectl
查看时区列表timedatectl list-timezones
设置时区timedatectl set-timezone Asia/Shanghai
手动修改时间方法timedatectl set-time "yyyy-mm-dd HH:MM:SS"
或者可以使用date命令修改时间date -s "yyyy-mm-dd HH:MM:SS"
以下四个命令中的true/false 可使用1/0、yes/no代替
启用NTP服务(启用NTP服务或者Chrony服务)
timedatectl set-ntp true
关闭NTP服务timedatectl set-ntp false
设置硬件时钟为本地时区timedatectl set-local-rtc true
设置硬件时钟为UTC时间timedatectl set-local-rtc false
执行
set-local-rtc
命令时,增加选项--adjust-system-clock
可将RTC时间应用到系统时钟,反之则根据系统时钟来更新RTC时间