在一台计算机上我们有两个时钟:一个称之为硬件时间时钟(RTC),还有一个称之为系统时钟(System Clock)。
系统时钟就是操作系统的kernel所用来计算时间的时钟. 它从1970年1月1日00:00:00 UTC时间到目前为止秒数总和的值。
在Linux下,系统时间在开机的时候会和RTC硬件时钟同步(synchronization),之后也就各自独立运行了。
系统运行期间,则通过其他硬件时钟源进行tick计算(tsc、hpet、acpi_pm)。
RTC(real time clock)通过主板(CMOS)的电磁供电,精确到秒。用户可手工设置RTC时间。
时间同步三部曲:
1. 强制跃迁同步
ntpdate -u xx.xx.xx.xx
xx.xx.xx.xx 为ntpServer地址,如 ntp.aliyun.com
注意:此时本机的ntpd不能启动,否则执行 ntpdate会报socket占用
2. 将系统时间同步到硬件时钟
hwclock -w
3. 启动ntpd,后续平滑同步
systemctl start ntpd
注意:此时本机的不能在ntpd运行期间执行ntpdate,否则会报socket占用
参考
NTP服务器时间监控脚本
https://www.yaoyan.me/2021/03/ntp-time-monitor/
使用Prometheus监控时间指标
http://www.panooo.com/prometheus_ntp
Linux时间子系统及node-exporter对时钟的监控
https://www.cnblogs.com/danny-djy/p/14132436.html
真正让你明白Linux NTP(包括历史、参数解释、安装配置)
https://www.aboutyun.com/thread-11395-1-1.html
GaussDB(DWS)NTP变更指南
https://bbs.huaweicloud.com/blogs/detail/211403
NTP时钟同步异常告警处理
https://support.huawei.com/enterprise/zh/knowledge/KB1000029535
chrony服务时间同步实验
https://www.yaoyan.me/2021/03/Chrony/
NTP 服务概述
https://cloud.tencent.com/document/product/213/30392
Linux 实例:配置 NTP 服务
https://cloud.tencent.com/document/product/213/30393
Linux 实例:将 ntpdate 转换为 ntpd
https://cloud.tencent.com/document/product/213/45361
Redis 3.2.8集群部署实验
https://www.yaoyan.me/2017/03/redis-cluster-setup/
Linux dns服务 bind安装配置
https://www.yaoyan.me/2017/06/LinuxBind/
printf格式化输出
https://www.yaoyan.me/2015/07/shell_printf/
NTP协议与SNTP协议的区别
https://www.ruijie.com.cn/fw/wt/18857/
SNTP- Simple Network Time Protocol简单网络时间协议
https://www.syn029.com/h-nd-1881.html
https://hongwangle.com/terms-definition/time-server-terms-analysis/sntp-simple-network-time-protocol/