需要代理上网的linux服务器,无法使用NTP同步时间,只需要这一行指令即可。
创始人
2024-05-20 17:35:21

这将会是一篇让你对时间同步受益匪浅的文章!如果你看完之后有收获,希望你能加个关注,如果你看完之后没有收获,希望你能留下你路过的痕迹。

 由于工作需要,我们使用了一款神奇的调度框架,叫powerjob,但是powerjob并不是本次吐槽的主角,这次吐槽的主角是我们神奇的网络环境。

想象一个场景,调度人员让工人在上午十点去干某一件事情,结果工人的手表坏了,工人手表的时间到十点的时候,实际时间却已经是下午1点了,这就是时间不同步问题。

现在我要将“调度人员”布置到服务器上,自然就需要让服务器和我这个工人电脑的时间同步,我这工人没啥问题,可以用我的代理账号上网,但是服务器不行啊,服务器是公共资源,他上网费劲啊(我们公司他不允许啊)。这时候也只能牺牲小我了,先大公无私的使用我自己的账号登录一下,用来上网,上网问题解决。

接下来按照网上的各种同步时间的教程,安装一个ntp,然后问题就来了,只要一同步时间就报错:

          no server suitable for synchronization found

上网搜了各种方法,完全不顶用啊,我甚至将我自己的电脑配置成了ntp服务器,让这个傻悲服务器来我这同步时间,反正就是一句话,我能力有限,找不到方法同步时间,就在我要砸服务器跑路的时候,看到了下面这么一条指令

sudo date -s "$(wget -S "https://www.baidu.com/" 2>&1| grep -E '^[[:space:]]*[dD]ate:' | sed 's/^[[:space:]]*[dD]ate:[[:space:]]*//' | head -1l | sed 's/,//'
)"

我也不知道这么一串乱七八糟的指令是什么,反正我现在心乱如麻,看这指令眼花缭乱,只能七手八脚的将其复制粘贴了,结果出乎意料啊,日期居然同步上了,但是时间不对,时间是00:00:00,这就让人头大了啊,你这犹抱琵琶半遮面,要给不给我全部的引诱手段,让我实在是欲罢不能啊,我这个人吧,又菜又爱研究,就跟狂飙里面的安欣一样,轴!我就开始研究这条指令到底啥意思。

 sudo date -s “”这太简单了,之前我都不知道,这就是设置日期啊,那后面双引号里面的指令最终肯定是形成了一个正确的日期,那为啥没有时分秒呢?凭借我恐怖但又不那么准的第六感,就把后面的指令拆开一条一条尝试,结果第一条就出问题了,我输入wget -S "https://www.baidu.com/" 2>&1,输出下面的提示

错误: 无法验证 www.baidu.com 的由 “” 颁发的证书: 无法本地校验颁发者的权限。 要以不安全的方式连接至 www.baidu.com,使用“--no-check-certificate”

然后我就按照他的提示,输入了wget -S "https://www.baidu.com/" 2>&1 --no-check-certificate

成功了,马不停蹄,直接将这一部分放回之前那一长串指令中去,时间成功同步!

sudo date -s "$(wget -S "https://www.baidu.com/" 2>&1 --no-check-certificate|
    grep -E '^[[:space:]]*[dD]ate:' |
    sed 's/^[[:space:]]*[dD]ate:[[:space:]]*//' |
    head -1l |
    sed 's/,//'
)"

既然目标已经达成,这一串指令到底啥意思,我得搞一下啊,最后我发现,这一串指令初看是乱花渐欲迷人眼,细看了也就那么回事,就是用正则表达式将百度首页里面的时间提取出来设置到系统中去,大概就这么一个意思,再去细扣里面的细节,我就不在这露怯了,都是一些个初级linux指令。

学习了,佩服!佩服!这哪是人能想出来的招啊,简直惊为天人!

你说这叫人事嘛?上网还得走代理!

 

相关内容

热门资讯

最新或2023(历届)关于铁人... 王进喜,1923年10月8日出生于甘肃省玉门县赤金堡一个贫苦的农民家庭。6岁讨饭,10岁给地主放牛,...
最新或2023(历届)森林防火... 森林防火须知手抄报图片
原创 半... 朝方突然甩出一份声明,把刚有点缓和苗头的半岛,一脚踹回了紧张模式。 2025新年钟声才敲响几天,...