獲取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使用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM