Bash 比较两个时区

Bash 比较两个时区,bash,time,timezone,compare,Bash,Time,Timezone,Compare,背景:我所在的团队将软件部署到30多个不同时区的服务器上。每个服务器位置都有自己的维护窗口。我们的SysAd团队位于5个不同的位置。目前,我们使用一个内部wiki页面,其中包含服务器位置表和google时间转换链接,如。因此,我们维护窗口的内部wiki页面充满了服务器的时区,如果它们是否遵循DST偏移,然后是一个转换链接作为开始时间,另一个google转换链接作为维护窗口的开始时间。现在跟踪哪些服务器可以进行修补非常耗时。由于一些服务器与其他服务器位于同一时区,但可能不遵循DST,这是一个混乱的

背景:我所在的团队将软件部署到30多个不同时区的服务器上。每个服务器位置都有自己的维护窗口。我们的SysAd团队位于5个不同的位置。目前,我们使用一个内部wiki页面,其中包含服务器位置表和google时间转换链接,如。因此,我们维护窗口的内部wiki页面充满了服务器的时区,如果它们是否遵循DST偏移,然后是一个转换链接作为开始时间,另一个google转换链接作为维护窗口的开始时间。现在跟踪哪些服务器可以进行修补非常耗时。由于一些服务器与其他服务器位于同一时区,但可能不遵循DST,这是一个混乱的跟踪。一些正在工作的软件开发人员保留了一个包含所有转换链接的完整书签文件夹,我想给他们发送一个脚本来简化这个过程

目标:我基本上希望脚本能够将SysAds当前时区与不同服务器的时区进行比较。最后,我需要一个echo语句,说明现在可以修补哪个服务器,最后我希望稍后添加进一步的逻辑,以评估到下一个维护窗口的时间和服务器位置

问题1:我不熟悉脚本编写。 问题2:当我做一个简单的TZ比较时,它并没有输出我期望的结果。我觉得一旦我理解了为什么下面的输出是这样的,我想我就可以理解剩下的逻辑了。在这一点上,我不一定关心具体的时间和分钟。为什么If语句的输出不一样呢

所需脚本:

!/bin/bash SysAd在第一时间设置自己的时区变量 出口TZ=美国/洛杉矶 TZ1=`date+%::z` echo$TZ1 位置1中服务器的时区 TZ=美国/洛杉矶 TZ2=`date+%::z` echo$TZ2 如果[[TZ1==TZ2]];然后 呼应 其他的 回声不一样 输出:

%/test.sh -08:00:00 -08:00:00 不一样 预期的结果是它们是相同的。回显TZ1和TZ2变量都是-08:00:00

它应该是:

if [[ "$TZ1" == "$TZ2" ]]

如果[[$TZ1==$TZ2]];然后这些都是变量,必须展开。你在比较字符串TZ1和TZ2,它们不一样。我想其他人已经解决了你的bash问题,所以我将提供一些关于时区的建议:1看。2了解。3读。4读。5使用诸如的工具,而不是谷歌搜索。