У меня есть журналы доступа с моего сервера. Мне нужно взять разницу во времени между двумя журналами. Мои журналы доступа имеют следующий формат времени: «14 апреля 2021 г. 06:25:09».
Чтобы взять разницу между двумя временными метками, я подумал преобразовать заданные временные метки в секунды с начала эпохи, а затем взять разницу.
Пример журнала доступа:
106.222.52.107 - - [14/Apr/2021:06:25:06 -0400] "POST URL1 HTTP/1.1" 204 4649 708 "Mozilla/5.0 (Linux; Android 11; V2037) AppleWebKit/537.36 (KHTML, как Gecko ) Chrome/83.0.4103.106 Mobile Safari/537.36"
157.34.255.192 - - [14/Apr/2021:06:25:08 -0400] "GET URL2 200 5309 1125" Mozilla/5.0 (Linux; Android 7.1.1; CPH1729 Build/N6F26Q) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/61.0.3163.98 Mobile Safari/537.36"
1.38.48.202 - - [14/Apr/2021:06:25:10 -0400] "GET URL3 HTTP/1.1" 200 8692 64616 "Mozilla/5.0 (iPhone; процессор iPhone OS 14_4_2, как Mac OS X) AppleWebKit/605.1. 15 (KHTML, например Gecko) Версия/14.0.3 Mobile/15E148 Safari/604.1"
106.222.52.107 - - [14/Apr/2021:06:28:06 -0400] URL4 200 10506 1063 "Mozilla/5.0 (Linux; Android 11; V2037) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/83.0.4103.106 Мобильное сафари / 537,36 дюйма
157.34.255.192 - - [14/Apr/2021:06:29:06 -0400] URL5 200 620 866 "Mozilla/5.0 (Linux; Android 7.1.1; CPH1729 Build/N6F26Q) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/61.0.3163.98 Мобильный Safari/537,36"
Итак, я хочу преобразовать «14/Apr/2021:06:25:06» в секунды с начала эпохи.
Я использую команду даты для преобразования заданной отметки времени в секундах. Ниже приведена команда:
дата "+%s" -d="14/апр/2021 06:25:09"
Выдает следующую ошибку:
дата: неверная дата â=14/Apr/2021 06:25:09â
Но когда Я меняю местами день и месяц тогда работает нормально.
дата "+%s" -d "14.04.2021 06:25:09" Вывод: 1618399509
Имеет ли команда даты какой-то предопределенный формат? Изменить формат метки времени в журналах доступа сложно. Не могли бы вы предоставить решение для этого? Мне нужно написать сценарий оболочки, в котором мне нужно прочитать журналы доступа, и в зависимости от IP-адреса и отметки времени мне нужно создать еще один файл данных.
Я использую Убунту 20.