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

相关推荐

  • Linux管理员为何查不到明文密码?

    查看密码存储文件(仅限root权限)Linux用户密码的加密哈希值存储在 /etc/shadow 文件中:sudo cat /etc/shadow输出示例(关键字段说明):username:$6$TrnQz2d…$Vj5Xb2…:19485:0:99999:7:::字段1: 用户名字段2: 加密后的密码……

    2025年7月23日
    14700
  • Linux下Java开发全流程如何实现?

    在Linux环境下进行Java开发,利用其稳定性和Java跨平台优势,涵盖环境搭建、代码编写、调试测试到最终部署的全流程,适用于企业级应用。

    2025年7月4日
    18300
  • 如何全面有效测试Linux定时任务执行情况与触发结果是否准确?

    Linux定时任务(通常通过cron服务实现)是自动化运维的重要工具,但任务配置后需通过有效测试确保其按预期执行,以下是详细的测试方法及注意事项,帮助全面验证定时任务的可靠性,定时任务基础认知在测试前需明确cron的核心概念:cron通过crontab文件配置任务,格式为“分钟 小时 日期 月份 星期 命令……

    2025年9月23日
    14400
  • Linux如何覆盖同名文件夹?

    在Linux系统中,“覆盖同名文件夹”通常指用新文件夹的内容完全替换旧文件夹,或直接替换整个目录节点,由于Linux的文件系统特性(如目录本质是索引节点),直接“覆盖”需通过删除、移动或同步操作实现,以下是具体方法及注意事项,常用覆盖方法及操作步骤使用mv命令直接替换(适用于同目录场景)当新文件夹(new_fo……

    2025年9月10日
    14600
  • 如何查看Linux网络端口占用情况的命令和方法?

    在Linux系统运维中,网络端口占用情况的排查是常见任务,无论是解决服务冲突、验证服务启动状态,还是进行安全审计,都需要准确掌握端口的使用情况,本文将详细介绍Linux下查看网络端口占用的常用方法,包括命令参数、使用示例及适用场景,使用netstat命令查看端口占用netstat是传统的网络工具,虽然在新版Li……

    2025年8月22日
    13700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信