zoukankan      html  css  js  c++  java
  • 获取2台linux机器的时间差

    背景

        有些场景下,需要获得2个linux机器的时间差。从网上搜了一些办法如下。

    方法

    (方法1)clockdiff

    参考:https://www.aityp.com/clockdiff/

    原理:使用IP报文/ICMP报文头存放的时间戳来比对2个linux机器的时间差。

    如果加了参数-o或者-o1,就是用IP报文的时间戳,区别在于-o使用了3个时间戳,-o1使用了4个时间戳。

    如果不加参数就是使用ICMP报文的时间戳。

    用法:

    [root@shpbs01-krds-backup096002208 script]# clockdiff 10.96.2.194
    .
    host=10.96.2.194 rtt=750(187)ms/0ms delta=-3ms/-3ms Wed Apr 22 16:00:56 2020 

    从返回结果中的delta=-3ms/-3ms,可知,目的机器的时间戳比本地机器的时间戳小3ms。

    得到的结果中

    (方法2)linux的date命令

    使用date命令打印出当前机器的时间戳,可以精确到ms

    命令如下:

    [root@shpbs01-krds-backup096002208 liurong]# cat time.sh
    #/bin/bash
    declare startTime=`date +%s%N`;
    echo `expr $startTime / 1000000`

    执行之后获得本地时间戳

    [root@shpbs01-krds-backup096002208 liurong]# sh time.sh
    1587457576467

    查看2台机器的时间戳

    [root@shpbs01-krds-backup096002208 liurong]# cat get_time.sh
    #!/bin/bash

    MASTER=10.96.2.194
    SLAVE=10.96.2.208

    function get_master()
    {
    declare startTime=`date +%s%N`;
    echo `expr $startTime / 1000000`
    }


    function get_slave()
    {
    ssh ${SLAVE} << abc
    declare startTime=`date +%s%N`;
    echo `expr $startTime / 1000000`
    exit
    abc
    }

    get_master
    get_slave

    (方法3)tcpdump抓包,配合wireshark使用

  • 相关阅读:
    跨期套利策略
    读书笔记 量化交易:如何建立自己的算法交易事业
    ESP8266固件修改可以控制多个IO方法
    ESP8266固件烧录方法
    关于毕设WiFi选型
    关于(x&y)+((x^y)>>1)的探究
    QML添加右键菜单
    初学QML之QML和C++混合方法
    初学QML之qmlRegisterType
    我的第一个QML Button的实现
  • 原文地址:https://www.cnblogs.com/liurong07/p/12745541.html
Copyright © 2011-2022 走看看