Вычислите разницу во времени между двумя разами

Я записал следующие два раза в файле журнала, который проверяет обратное соединение SSH когда-либо 5 минут. Если соединение снижается, оно записывает поломку и продолжает пытаться снова соединиться каждые 5 минут.

Я хочу вычислить различие между этими двумя разами. Я предполагаю, что процесс:

1) Преобразуйте их в метку времени.

2) Минус один от другого.

3) Отобразите результат.

BROKEN: Jun 29 16:15:01 IST 2017
RESTARTED: Jun 29 16:15:21 IST 2017

Как я преобразовываю вышеупомянутое в упомянутую метку времени? Или я смотрю на это неправильным способом?

2
задан 30 June 2017 в 14:29

1 ответ

Основной способ использовать date:

Извлечение дата от строки:

$ sed -n '/BROKEN/ s/BROKEN: //p' file
Jun 29 16:15:01 IST 2017

Преобразовывают во время эпохи

$ date -d "Jun 29 16:15:01 IST 2017" "+%s"
1498733101

Повторение и вычитают (у меня были некоторые разделяющие слово проблемы с этим форматом даты, таким образом, я просто подкровать команды все это. Возможно, существует более чистый путь):

$ BROKEN=$(date -d "$(sed -n '/BROKEN/ s/BROKEN: //p' file)" "+%s")
$ RESTARTED=$(date -d "$(sed -n '/RESTARTED/ s/RESTARTED: //p' file)" "+%s")
$ echo $((RESTARTED-BROKEN))
20

различие выходит в секундах, конечно...

6
ответ дан 2 December 2019 в 01:43

Другие вопросы по тегам:

Похожие вопросы: