建设公司网站需要钱吗网站设计网站建设
1. 基础知识
Linux 的系统时间有时跟硬件时间是不同步的。
 Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。 Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。
常用操作指令
- 查询硬件时钟
 
hwclock --show
 
- 硬件时钟与系统时钟同步
 
hwclock --hctosys(hc代表硬件时间,sys代表系统时间)或者clock --hctosys
 
- 系统时钟和硬件时钟同步
 
 hwclock --systohc或者clock --systohc
 
- 查询系统时间
 
 date
 
2. 设备时间同步配置
2.1 NTP时间同步
需依赖设备可上外网
 配置文件:/etc/chrony.conf
 
 时间同步原理:chrony.conf中配置NTP服务,chronyd将NTP时间同步到系统时间。
2.2 RTC时间同步
配置文件:/etc/chrony.conf
# 启用内核对实时时钟(RTC)的同步。
rtcsync
 
配置说明:配置上该项后,linux内核将每隔11分钟将系统时间同步到RTC时间
3. RTC时钟测试
3.1 rtcsync指令配置测试
测试目的:验证rtcsync配置是否有效
 测试步骤:
- 设置不安装纽扣电池。
 - chronyc sources -v查询系统时间同步状态正常。
 - hwclock 查询硬件RTC时间。硬件RTC时间为2000年,RTC时间无效。
 - 关闭/打开chrony.conf中的rtcsync配置。
 - 重启设备,hwclock 查询硬件RTC时间是否有效。
测试结论:
当chrony.conf文件中配置上rtcsync时,设备上电后内核时间可以同步到RTC时间。 
3.2 RTC时间测试
测试目的:验证有纽扣电池时,RTC时间是否能起作用。
 测试前置条件:有无安装纽扣电池,硬件RTC时间是否有效。
 操作步骤:
- chronyc sources -v查询系统时间同步状态正常。
#*为系统时间同步成功

 
#?为系统时间同步失败
 
- hwclock 查询硬件RTC时间。如RTC时间未同步,执行hwclock --systohc同步RTC时间。
 - 关闭设备的系统时间同步功能。
/etc/chrony.conf中加#屏蔽NTP server配置(设备无外网可不修改) - reboot或断电重启设备
 - 设备重启后,date查询系统时间,hwclock查询硬件时间。chronyc sources -v确认时间是否同步。
 
测试结论:
- hwclock硬件RTC时间无效时,reboot重启设备,硬件时间无法保存,系统时间无法同步;
 - hwclock硬件RTC时间有效时,reboot重启设备,硬件时间可以保存,系统时间首先同步硬件RTC时间;
 - hwclock硬件RTC时间有效时,RTC电池没电,断电重启,硬件时间无法保存,系统时间无法同步;
 - hwclock硬件RTC时间有效时,RTC电池有电,断电重启,硬件时间可以保存,系统时间可以同步;
 
参考资料
 chronyd的那些事
