Сравнение двух часовых поясов - PullRequest
0 голосов
/ 14 февраля 2020

Справочная информация. Я работаю в команде, которая развертывает программное обеспечение на серверах в более чем 30 различных часовых поясах. Каждое местоположение сервера имеет свое собственное окно обслуживания. Наша команда SysAd находится в 5 разных местах. В настоящее время мы используем внутреннюю вики-страницу с таблицей местоположений серверов и ссылками на перевод времени Google, например this . Таким образом, наша внутренняя вики-страница обслуживания windows полна часовых поясов серверов, если они следуют за смещением летнего времени или нет, а затем ссылка конверсии для времени начала и другая ссылка конверсии Google для времени окончания из окно обслуживания. Отслеживание того, какие серверы могут быть исправлены, занимает много времени. Поскольку некоторые серверы находятся в том же часовом поясе, что и другие серверы, но, возможно, не следуют DST или нет, это беспорядок отслеживания. Некоторые разработчики программного обеспечения хранят полную папку закладок со всеми ссылками конверсии, и я хотел отправить им сценарий, который может упростить это.

Цель: я хочу, чтобы скрипт мог сравнивать SysAds текущий часовой пояс для часового пояса различных серверов. В конце я хочу получить эхо-сообщение о том, какой сервер может быть исправлен прямо сейчас, и, в конце концов, я хочу добавить еще логи c, которые будут определять время до следующего окна обслуживания и расположение этих серверов.

Проблема # 1: я новичок в написании сценариев Проблема № 2: Когда я делал то, что считал простым сравнением TZ, я не получал то, что ожидал. Я чувствую, как только я понимаю, почему вывод ниже, как таковой, я думаю, что я могу понять остальную часть лог c. На данном этапе мне не обязательно задавать c часы и минуты. Почему оператор If не выдает «то же самое»?

Требуемый сценарий:

  #!/bin/bash
  ##SysAd Sets his own timezone in the first TZ variable.                                                                                                                                                                                                                                                                                                                 
  export TZ=America/Los_Angeles                                                                                                                                                                                                                                                                                               
  TZ1=`date +%::z`                                                                                                                                                                                                                                                                                                                  
  echo $TZ1                                                                                                                                                                                                                                                                                                                   

  ##Timezone of Server in location 1                                                                                                                                                                                                                                                                                                                             
  TZ=America/Los_Angeles                                                                                                                                                                                                                                                                                                      
  TZ2=`date +%::z`                                                                                                                                                                                                                                                                                                                  
  echo $TZ2                                                                                                                                                                                                                                                                                                                   

  if [[ " TZ1 " == " TZ2 " ]]; then                                                                                                                                                                                                                                                                                           
      echo "the same"                                                                                                                                                                                                                                                                                                         
  else                                                                                                                                                                                                                                                                                                                        
      echo "not the same"

вывод:

% ./test.sh 
-08:00:00
-08:00:00
not the same

Ожидаемый вывод - они одинаковы. вывод обоих переменных TZ1 и TZ2 "-08: 00: 00"

1 Ответ

1 голос
/ 14 февраля 2020

Должно быть:

if [[ "$TZ1" == "$TZ2" ]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...