当前位置: 代码网 > 服务器>服务器>Linux > Linux同步系统时间和硬件时间同步的具体方法

Linux同步系统时间和硬件时间同步的具体方法

2025年11月21日 Linux 我要评论
在 linux 系统中,时间同步分为两部分:系统时间(system time) 和 硬件时间(hardware time 或 rtc, real-time clock)。系统时间是 linux 内核维

在 linux 系统中,时间同步分为两部分:系统时间(system time)硬件时间(hardware time 或 rtc, real-time clock)。系统时间是 linux 内核维护的时间,主要用于运行时的任务调度和时间记录;硬件时间是 bios 或主板维护的时间,独立于操作系统,即使关机也能继续保持准确。

以下是同步时间的方法和硬件时间同步的具体步骤:

1. 同步系统时间:使用 ntp 或 chrony

系统时间通常通过网络时间协议(ntp)服务器来同步。

1.1 使用ntp工具同步时间

安装 ntp 服务

在 debian/ubuntu 系列:

sudo apt update
sudo apt install ntp

在 centos/rhel 系列:

sudo yum install ntp 

启动 ntp 服务

启动并设置为开机自启:

sudo systemctl start ntp
sudo systemctl enable ntp

同步时间

手动同步时间:

sudo ntpdate pool.ntp.org
  • pool.ntp.org 是全球公共 ntp 时间服务器。如果需要更精准的同步,可以选择离你位置较近的服务器。

1.2 使用chrony工具同步时间

chrony 是一个轻量级时间同步工具,适合在不稳定网络环境下使用。

安装 chrony

在 debian/ubuntu 系列:

sudo apt update
sudo apt install chrony

在 centos/rhel 系列:

sudo yum install chrony 

启动 chrony 服务

启动并设置为开机自启:

sudo systemctl start chronyd
sudo systemctl enable chronyd

手动同步时间

强制立即同步系统时间:

sudo chronyc -a makestep 

验证时间同步状态

检查时间源状态:

chronyc sources 

1.3 使用timedatectl同步时间

timedatectl 是现代 linux 发行版中管理时间的工具,基于 systemd

启用时间同步

检查时间同步状态:

timedatectl status 

如果未启用 ntp 时间同步,使用以下命令启用:

sudo timedatectl set-ntp true 

手动更新时间

如果需要手动立即同步时间,可以结合 ntpdate 使用:

sudo ntpdate pool.ntp.org 

2. 硬件时间同步:系统时间与硬件时间的关系

2.1 硬件时间与系统时间的区别

  • 系统时间(system time): 由操作系统维护的时间,通常通过 ntp 或本地用户手动设置。
  • 硬件时间(hardware time 或 rtc): 由主板的硬件时钟维护,即使关机也能持续计时。

linux 系统启动时,会从硬件时间获取初始值,并将其加载为系统时间。正常运行时,系统时间与硬件时间可以独立运行,但需要定期同步以确保一致性。

2.2 查看硬件时间

使用 hwclock 查看硬件时间:

sudo hwclock --show 

输出示例:

2025-11-20 15:45:32.213244+00:00

2.3 将系统时间同步到硬件时间

如果系统时间正确,但硬件时间不一致,可以将系统时间写入硬件时间:

sudo hwclock --systohc 
  • 效果: 将系统时间设置为硬件时间。

2.4 将硬件时间同步到系统时间

如果硬件时间正确,但系统时间不一致,可以将硬件时间加载为系统时间:

sudo hwclock --hctosys 
  • 效果: 根据硬件时间设置系统时间。

2.5 检查和设置硬件时间的时区

硬件时间可以设置为 utc(协调世界时)本地时间(local time)

查看当前硬件时间的时区设置:

timedatectl 

输出示例:

rtc in local tz: no
  • yes 表示硬件时钟使用本地时间。
  • no 表示硬件时钟使用 utc(推荐)。

如果需要更改硬件时间的时区设置(如设置为 utc):

sudo timedatectl set-local-rtc 0 

3. 自动化时间同步

为了保持时间一致性,可以通过以下方式自动同步时间:

3.1 定时同步 ntp 时间

添加 ntpdate 到 cron 定时任务:

sudo crontab -e 

添加以下内容:

0 * * * * /usr/sbin/ntpdate pool.ntp.org 
  • 每小时同步一次时间。

3.2 启用硬件时间与系统时间自动同步

确保系统时间与硬件时间一致,可以在系统启动时自动同步:

  • 检查 /etc/adjtime 文件是否存在并正常工作。
  • 如果需要手动同步:
sudo hwclock --systohc 

4. 常见问题与解决方法

4.1 时间不同步的原因

  • ntp 服务未启动: 确保 ntp 或 chrony 服务已启用。
  • 时区配置错误: 确保系统和硬件时钟的时区一致。
  • 系统负载过高: 高负载可能导致时间漂移,需检查系统资源。
  • cmos 电池耗尽: 如果硬件时间丢失,可能是 bios 电池耗尽,需更换。

4.2 强制同步时间失败

  • 如果 ntpdatechrony 无法同步时间,检查防火墙是否阻止了 ntp 流量(默认使用 udp 123 端口)。
  • 检查网络连通性:
ping pool.ntp.org 

5. 总结

系统时间同步步骤:

  1. 使用 ntp 或 chrony 工具同步系统时间。
  2. 使用 timedatectl 确保时间同步功能已启用。

硬件时间同步步骤:

查看硬件时间:

sudo hwclock --show 

同步系统时间到硬件时间:

sudo hwclock --systohc 

根据需要调整硬件时间的时区设置。

通过定期自动同步系统时间和硬件时间,可以确保 linux 系统时间的准确性和一致性。

以上就是linux同步系统时间和硬件时间同步的具体方法的详细内容,更多关于linux同步系统时间和硬件时间同步的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com