一键时间同步:利用SSH进行时间同步
时间同步概念
在大型系统中,时间同步是一个非常重要的基础功能。如果各系统时间相差过大,会导致一系列异常问题出现。
常用的时间同步方式一般是在服务器中安装诸如NTP,chrony等客户端,配置好时钟源,然后定时进行时间同步。
但是客户端的方式对于临时使用来说有些过重,下面提供一种通过SSH来实现的同步方法,仅需一句代码即可实现
1。修改本机时间与服务器时间同步
date -s $(ssh root@192.168.137.114 date +%FT%T)
2。将本机时间下发给其他主机
ssh root@192.168.137.114 date -s $(date +%FT%T)
注意:利用本方式设置时间会有一定的误差,如果对时间准确性有严格要求,请安装NTP等对时服务
附加知识点
在修改时间时,日期和时间中间是有空格的,这个空格会影响命令的执行,我们只需要在日期和时间中间增加一个字符,而增加了字符后的字符串即可被系统认为是一个变量,又符合时间格式,那问题就可以解决了。
在ISO 8601标准中,日期和时间合并表示需要在日期和时间中间加T,但实际可以增加的字符有25个,为26个英文字母除J之外的其他所有字符。如图所示,我们将时间设置为2022-01-23 20:12:34、2022-01-23 02:12:34、2022-01-23 12:12:34
根据下图结果,我们猜测一下,TU相同,MY相同,其他字母分别代表了24个时区,结果中没有21,03,13这三个时间点,也就是当前时间加1小时,至于为啥没有,我也不清楚,可能是因为东七区时间没人用吧
那么假设我们所在的位置为东八区,设置的2022-01-23 20:12:34为东九区时间,那么此时东八区时间为2022-01-23 19:12:34,此时我们在时间中加一个V,也就是2022-01-23V20:12:34,设置完成后我们的时间就成功修改成了2022-01-23 19:12:34。
除了T在标准中有明确的说明,其他字母意义未知,感兴趣可自行探索