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

 更新时间:2025年11月21日 08:53:16   作者:网硕互联的小客服  
在 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同步系统时间和硬件时间同步的资料请关注脚本之家其它相关文章!

相关文章

  • 解决Linux可执行文件目录下明明存在*.so文件,但却提示找不到

    解决Linux可执行文件目录下明明存在*.so文件,但却提示找不到

    这篇文章主要介绍了解决Linux可执行文件目录下明明存在*.so文件,但却提示找不到问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • linux把一个文件的内容复制到另一个文件的末尾

    linux把一个文件的内容复制到另一个文件的末尾

    这篇文章主要介绍了linux把一个文件的内容复制到另一个文件的末尾,文中给大家提到了linux 把文件末尾输出到另一个文件的方法,需要的朋友可以参考下
    2019-08-08
  • Linux用户管理与常见权限命令

    Linux用户管理与常见权限命令

    在Linux系统中,用户和组是管理权限和资源访问的基本单元,用户可以属于一个或多个组,组用于集中管理一组用户的权限,文件权限决定了用户或组对文件的访问级别,每个文件或目录都有三个权限集,分别适用于文件所有者(User)、所属组(Group)和其他用户(Others)
    2024-08-08
  • 浅谈Linux的库文件

    浅谈Linux的库文件

    这篇文章主要介绍了Linux的库文件的相关内容,小编觉得很不错,在这里分享给大家。希望给大家一个参考。
    2017-10-10
  • Apache服务器二级域名的完美实现

    Apache服务器二级域名的完美实现

    Apache服务器二级域名的完美实现 首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com
    2008-10-10
  • CentOS配置SSH免密登录实现方式

    CentOS配置SSH免密登录实现方式

    文章介绍了如何在三台CentOS服务器之间配置免密码SSH登录,以便进行集群化软件的安装和管理,配置步骤包括生成SSH密钥对并分发公钥到其他服务器
    2025-11-11
  • Linux CentOS服务器搭建与初始化配置教程

    Linux CentOS服务器搭建与初始化配置教程

    这篇文章主要为大家详细介绍了Linux CentOS服务器搭建与初始化配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Ubuntu安装和卸载CUDA和CUDNN的实现

    Ubuntu安装和卸载CUDA和CUDNN的实现

    这篇文章主要介绍了Ubuntu安装和卸载CUDA和CUDNN的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Linux下Kafka分布式集群安装教程

    Linux下Kafka分布式集群安装教程

    这篇文章主要为大家详细介绍了Linux下Kafka分布式集群安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 从Centos7升级到Centos8的教程(图文详解)

    从Centos7升级到Centos8的教程(图文详解)

    这篇文章主要介绍了从Centos7升级到Centos8的教程,在升级之前需要配置备份,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2019-11-11

最新评论