当前位置: 首页 > ds >正文

Linux 查看两个主机之间时间是否同步 - clockdiff命令详解

Linux 查看两个主机之间时间是否同步 - clockdiff命令详解

  • 引言
  • 一、clockdiff命令
    • 1.1 例子
    • 1.2 命令详解
  • 二、原理以及部分源码解析
    • 2.1 原理部分
    • 2.2 部分源码解析
  • 三、参考链接

引言

两个服务器 (基于Linux) 之间时间同步的重要性体现在多个方面,对系统的稳定性、安全性、数据一致性以及业务逻辑的正确执行都起着关键作用,比如日志记录和分析:当服务器之间时间不同步时,日志记录的时间戳将不准确,导致日志顺序混乱。这使得在分析问题时,很难准确地还原事件发生的先后顺序,增加了故障排查的难度。在Linux系统下,可以使用clockdiff查看两个主机之间系统时间的差值 – 精度为ms,可依据此差值判断时间是否同步,或继续排查其他问题。

一、clockdiff命令

clockdiff可以测量两个主机之间系统时间的差异1 ,一般Linux系统自带,没有的话需安装2注:需管理员权限3

1.1 例子

# clockdiff [-o] [-o1] destination,需要管理员权限
sudo clockdiff 192.168.1.1
  • 测量本地与192.168.1.1主机之间的系统时间差,以上命令的输出结果如下所示:
    在这里插入图片描述

  • 其中,各项的含义如下表所示:

含义
host192.168.1.1目标主机的ip地址,测量本机与ip地址为192.168.1.1的机器之间的系统时差
rtt750(187)ms/0ms平均往返时延(多次往返时延的标准差)/最小的往返时延
delta1ms/1ms d e l t a = 目标主机系统时间 − 本机系统时间 delta=目标主机系统时间 - 本机系统时间 delta=目标主机系统时间本机系统时间,两种测量方式计算出的系统时间差 (ms)
时间(省略)没啥,就是本地时间

1.2 命令详解

clockdiff [-o] [-o1] destination,通过本机与目标主机写入的时间戳来计算两个系统时间的差值,通过参数可控制使用何种时间戳4 (默认ICMP TIMESTAMP,一般使用默认的足以满足需求)。

  • -o   sudo clockdiff -o 192.168.1.1 使用带有ICMP ECHO的IP TIMESTAMP,适用不支持ICMP时间戳的主机
  • -o1 sudo clockdiff -o1 192.168.1.1使用 three-term IP时间戳(使用预先定义好的中间节点),而不是-o的 four-term IP时间戳

可以使用man clockdiff命令查看自带手册,如下图所示:
在这里插入图片描述

二、原理以及部分源码解析

2.1 原理部分

源码网址如下,想深入了解可直接看其源码,这篇博文讲的很清楚5
https://github.com/iputils/
https://gitee.com/rogerbowu/iputils

2.2 部分源码解析

  • 输出部分有疑惑 (比如下图rtt不应该是750ms),在自己的机子上尝试clockdiff自己sudo clockdiff 127.0.0.1,结果如下所示:
    在这里插入图片描述
  • 看源码输出部分:
    在这里插入图片描述
  • 继续看计算rtt部分以及其初始化,其初始化为1000ms,计算一次过后rtt=(1000*3+0)/4=750ms 由于时延很小直接退出,计算rtt确实有bug,但不影响测量delta.
    在这里插入图片描述

三、参考链接


  1. Linux系统之clockdiff命令详解:https://blog.csdn.net/weixin_56303229/article/details/146570938 ↩︎

  2. Ubuntu18.04系统如何用clockdiff测算目标主机和本地主机之间的系统时间差:https://www.henghost.com/news/article/159229/?jsmc=30d7b72212&jsme=1748797460 ↩︎

  3. 统信os平台普通用户无法调用clockdiff的问题解决方法:https://blog.csdn.net/liuy5277/article/details/136557641 ↩︎

  4. INTERNET CONTROL MESSAGE PROTOCOL:https://dl.acm.org/doi/pdf/10.17487/RFC0792 ↩︎

  5. iputils网络工具时间比对程序clockdiff - 检测两台linux主机的时间差:https://blog.csdn.net/s_lisheng/article/details/80910902 ↩︎

http://www.xdnf.cn/news/13570.html

相关文章:

  • 前端面试六之axios
  • 408考研逐题详解:2009年第38题
  • 【Kubernetes】架构与原理:核心概念、组件协同及容器化部署解析
  • 【考研数学:高数6】一元函数微分学的应用(二)——中值定理、微分等式和微分不等式
  • 鼠标右键添加新建某种文件的方法
  • Go并发模型与模式:context 上下文控制
  • 01.pycharm整合conda
  • 华为OD最新机试真题-对称美学-OD统一考试(B卷)
  • WinForm中实现Adobe PDF Reader实现旋转PDF功能
  • opencv vs2020正确的环境配置
  • 《HarmonyOSNext终极UIAbility手册:从启动模式到页面跳转,一网打尽!》
  • 菌菇食用攻略:从营养解析到安全指南,解锁科学食菌
  • 【JavaEE】-- HTTPS
  • 【Web】腾讯云 COS 静态网站部署与自定义域名 HTTPS 全流程
  • 【C++】来学习使用set和map吧
  • Python毕业设计226—基于python+爬虫+html的豆瓣影视数据可视化系统(源代码+数据库+万字论文)
  • 基于鸿蒙 HarmonyOS 5 打车小程序案例
  • 深入偏微分方程的世界-AI云计算
  • 金属工具制造企业如何做项目管理?数字化系统全面提升交付效率
  • 使用反汇编指令javap查看synchronized实现原理
  • Keepalived 与 Nginx 高可用部署方案详解
  • 【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
  • ROS move base 简易调试
  • 使用智能表格做项目工时管理
  • 软件开发和嵌入式开发岗位的面试题
  • 【深尚想】SN74HCT244DWR缓冲器/驱动器TI逻辑芯片 电子元器件解析
  • 【题解】P1156 垃圾陷阱
  • “新京味”小柯音乐剧《三里屯42》 在小柯剧场6月全新开演
  • Oraclede 的体系结构
  • pycharm-continue插件久后使用的注意事项