Linux如何查看时间同步状态及是否与服务器同步?

在Linux系统中,时间同步是确保系统日志、任务调度、安全认证等功能正常运行的关键,若时间不同步,可能导致依赖时间的操作出现异常(如证书过期、定时任务未触发等),本文将详细介绍Linux系统中查看时间同步状态的多种方法,包括常用命令、工具及日志分析,帮助用户快速掌握时间同步状态的监控技巧。

linux如何查看时间同步

使用timedatectl命令查看时间同步状态

timedatectl是现代Linux发行版(如Ubuntu 16.04+、CentOS 7+)提供的系统时间管理工具,可直观查看时间同步状态。

基本用法

执行以下命令即可查看系统时间、时区及同步状态:

timedatectl status

输出解读

命令返回的信息包含多个关键字段,以下为示例输出及说明:

               Local time: 三 2024-05-15 14:30:25 CST  
           Universal time: 三 2024-05-15 06:30:25 UTC  
                 RTC time: 三 2024-05-15 06:30:25  
                Time zone: Asia/Shanghai (CST, +0800)  
System clock synchronized: yes  
              NTP service: active  
          RTC in local TZ: no  
  • Local time:本地系统时间(已设置时区)。
  • Universal time (UTC):协调世界时(UTC),与硬件时间无关。
  • RTC time:硬件时钟(CMOS/BIOS时间)的值。
  • System clock synchronized:核心字段,若为yes表示系统时间已同步;no则未同步。
  • NTP service:NTP服务状态,active表示服务正常运行,inactive表示未启动。

使用ntpq命令查看NTP服务器同步状态

ntpq是NTP(Network Time Protocol)的查询工具,用于查看系统与NTP服务器的连接状态及同步详情。

基本用法

执行ntpq -p可列出当前配置的NTP服务器及同步状态:

ntpq -p

输出解读

示例输出如下:

linux如何查看时间同步

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp1.aliyun.com .POOL.          16 p    -   64    0    0.000    0.000   0.000
+ntp2.aliyun.com 10.137.38.86     3 u   64   64    1    15.234  -120.456  0.123
+ntp3.aliyun.com 10.137.38.87     3 u   64   64    1    16.789  -110.234  0.234
  • remote:NTP服务器域名或IP地址,表示当前同步的主服务器,表示备选服务器。
  • refid:参考服务器ID(若为.POOL.表示从NTP池服务器获取)。
  • st:stratum层级(0-15,层级越小越权威,如1为原子钟服务器)。
  • t:类型(u表示unicast单播,p表示pool池服务器)。
  • when:最后一次查询服务器的时间(秒)。
  • poll:查询间隔(秒)。
  • reach:可达性(8表示完全可达,0表示不可达)。
  • delay:与服务器的时间延迟(毫秒)。
  • offset:时间偏差(毫秒,绝对值越小越好,建议<100ms)。
  • jitter:时间抖动(毫秒,值越稳定越好)。

使用chronyc命令查看Chrony同步状态

Chrony是NTP的替代工具,在高延迟或不稳定网络中表现更优,常见于CentOS 7+/Ubuntu 18.04+系统。

基本用法

  • 查看同步源状态:
    chronyc tracking
  • 查看NTP服务器列表及状态:
    chronyc sources

输出解读

chronyc tracking示例输出:

Reference ID    : 10.137.38.86 (ntp2.aliyun.com)
Stratum         : 3
Ref time (UTC)  : Wed May 15 06:30:30 2024
System time     : 0.123456968 seconds slow of NTP time
Last offset     : -0.000123456 seconds
RMS offset      : 0.000456789 seconds
Frequency       : 12.345678 ppm fast
Residual freq   : -0.123456 ppm
Skew            : 0.123456 ppm
Root delay      : 0.015234 seconds
Root dispersion : 0.001234 seconds
Update interval : 1024.0 seconds
Leap status     : Normal
  • System time:系统时间与NTP时间的偏差(正数表示系统时间快,负数表示慢)。
  • Last offset:最后一次同步的偏差值。
  • Frequency:时钟频率偏差(ppm,百万分率,绝对值越小越好)。

chronyc sources示例输出:

  MS Name/IP Address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 10.137.38.86               3   64    17    64  -120ms[-120ms] +/-   12ms
^+ 10.137.38.87               3   64    17    64  -110ms[-110ms] +/-   15ms
  • ^*:当前同步的主服务器(^表示可信任,表示活跃)。

查看系统日志排查时间同步问题

若上述命令显示时间未同步,可通过日志进一步排查:

NTP服务日志

tail -f /var/log/ntpstats/peer.log  # NTP同步日志

Chrony服务日志

tail -f /var/log/chrony/chrony.log  # Chrony同步日志

系统通用日志

journalctl -u ntpd -f  # 查看NTP服务日志(CentOS 6/Ubuntu旧版)
journalctl -u chronyd -f  # 查看Chrony服务日志(CentOS 7+/Ubuntu新版)

日志中可能包含“no server suitable found”(无合适服务器)、“connection refused”(连接拒绝)等错误信息,可根据提示检查网络或NTP服务器配置。

不同工具对比总结

为方便用户快速选择合适的查看方式,以下工具对比表格供参考:

linux如何查看时间同步

工具命令 适用场景 核心功能 常用选项
timedatectl 现代Linux发行版(systemd系统) 查看系统时间、时区及同步状态 statusset-timezone
ntpq 传统NTP服务(ntpd) 查看NTP服务器连接及同步详情 -p(显示服务器列表)
chronyc Chrony服务(chronyd) 查看同步源状态、偏差及频率 trackingsources

相关问答FAQs

Q1:Linux时间不同步怎么办?
A:可按以下步骤排查:

  1. 检查NTP/Chrony服务是否运行:systemctl status ntpdsystemctl status chronyd,未运行则执行systemctl start [服务名]并设置开机自启(systemctl enable [服务名])。
  2. 检查网络连通性:ping [NTP服务器IP],确保可访问。
  3. 检查NTP服务器配置:cat /etc/ntp.confcat /etc/chrony.conf,确认服务器地址正确(如server ntp.aliyun.com iburst)。
  4. 查看日志定位错误:通过tail -f /var/log/chrony/chrony.log等日志分析具体报错(如防火墙拦截、服务器不可达)。

Q2:如何手动同步Linux时间?
A:手动同步时间可通过以下命令实现:

  • 使用ntpdate(需安装,如yum install ntpdate):
    ntpdate -s ntp.aliyun.com  # 从阿里云NTP服务器同步并写入系统时间
  • 使用chronyc(推荐):
    chronyc -a makestep  # 强制Chrony立即同步时间
  • 使用timedatectl(仅同步系统时间,不更新硬件时间):
    timedatectl set-ntp off && timedatectl set-ntp on  # 重启时间同步服务

    同步后,可通过timedatectl statusntpq -p验证结果。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/29428.html

(0)
酷番叔酷番叔
上一篇 2025年9月24日 09:08
下一篇 2025年9月24日 09:26

相关推荐

  • 如何在使用IBus时添加输入法?

    在Linux系统中添加输入法需要根据您使用的桌面环境和发行版选择合适的方法,以下是详细的操作指南,涵盖主流发行版(Ubuntu/Debian、Fedora、Arch)和输入法框架(IBus、Fcitx),确保您能高效完成配置:选择输入法框架Linux常用两种输入法框架:IBus(推荐给GNOME用户)Fcitx……

    2025年7月26日
    10300
  • 如何查看系统所有线程状态?

    查看系统所有线程状态可使用工具如top、ps或htop,显示运行、阻塞等状态及CPU/内存占用情况,用于监控进程活动、识别资源消耗和诊断系统性能问题。

    2025年6月21日
    11500
  • linux find 如何使用

    Linux find命令是文件系统中非常强大的工具,主要用于在指定目录下递归查找符合特定条件的文件或目录,并可根据需求执行相应操作,其灵活性和丰富的参数使其成为日常系统管理和文件处理的必备命令,本文将详细介绍find命令的使用方法,包括基本语法、常用参数、组合条件及实际应用场景,基本语法find命令的基本语法结……

    2025年9月10日
    8600
  • 如何在Ubuntu/Debian安装Tmux?

    终端分屏:使用 Tmux(推荐)Tmux 是专业的终端复用工具,支持持久化会话和复杂分屏,基础操作:# 启动新会话tmux new -s mysession# 分屏快捷键(需先按Ctrl+B激活)Ctrl+B % # 垂直分割(左右分屏)Ctrl+B " # 水平分割(上下分屏)Ctrl+B 方向键……

    2025年8月7日
    9600
  • Linux7系统如何修改网卡名称?具体操作步骤是什么?

    在Linux 7系统中,默认采用Predictable Network Names(可预测网络名)机制,网卡名称通常以ens、eno、enp等前缀开头(如ens33、eno1),这种命名方式虽然能根据硬件信息(如主板插槽、网卡插槽)稳定识别网卡,但部分用户或旧版脚本习惯使用传统的eth0、eth1等名称,本文将……

    2025年10月8日
    6600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信