Linux chronyd同步ntp时间以及写入到服务器的UTC20250107V1
Linux chronyd同步ntp时间以及写入到服务器的UTC
一. 系统环境和配置 Kylin Linux Advanced Server release V10 (SP3) /(Lance)-x86_64-Build23/20230324
安装chrony并配置好/etc/chrony.conf
二. 测试和验证过程
1.手动把服务器的UTC时间调整为前一天,并重启服务器进行验证
检查systemctl status chronyd.service和chronyc sources -v,可以得知根据目前的策略,chronyd服务无法和ntp 服务器进行同步。
2.解决方案 使用chronyd -q强制同步时间测试 chronyd -q 'server 99.3.2.248 iburst'
还需要同步时间到服务器的UTC时间,使用命令如下:hwclock --systohc
进入系统后查看时间和chronyd服务状态以及chronyc sources -v
3. 验证
服务器重启进入BIOS验证当前时间。
验证无误,可以使用。
4. 写入脚本并开机后运行一次进行
# 创建脚本
vi /usr/local/bin/sync-time.sh
# 脚本内容
#!/bin/bash
# 停止chronyd服务
systemctl stop chronyd
# 强制同步时间,这里根据情况填写ntp server的地址
chronyd -q 'server 99.3.2.248 iburst'
# 将系统时间同步到硬件时间
hwclock --systohc
# 启动chronyd服务
systemctl start chronyd
设置开机运行一次,可以创建自定义系统服务,或在开机运行一次或者使用/etc/rc.local的方案,这里使用/etc/rc.local的方案
设置脚本权限
chmod +x /usr/local/bin/sync-time.sh
chmod +x /etc/rc.local
加入到/etc/rc.local 开机运行
然后手动修改时间后重启服务器验证脚本运行无误。
三. 总结
在chronyd的配置文件中禁用makestep的情况下,可以使用 chronyd -q来同步ntp server的时间,然后用hwclock --systohc同步到硬件UTC中。
也可以设置开机运行。