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

Команда 1:

    START=`date --date='now-60 minutes' '+%Y-%m-%d %H:%M'`
    END=`date --date='now' '+%Y-%m-%d %H:%M'`
    awk "/$START/, /$END/" filepath

Команда 2:

   grep "^$(date -d -1hour +'%Y-%m-%d %H')" filepath

Команда 3:

   awk -vdate=$(date -d "60 minutes ago" '+%Y-%m-%d%H:%M:%S') \ '$1$2 >= date { print }' filepath

Любые предложения/вклады для решения этого вопроса.

Примерные журналы

[01/01/21 22:40:26:088 IST] 0000002a SystemOut     O [WebContainer : 0 ] ERROR bla bla bla
[01/01/21 22:40:26:166 IST] 0000002a SystemOut     O [WebContainer : 0 ] ERROR bla bla bla
[01/01/21 22:40:27:360 IST] 0000002a SystemOut     O [WebContainer : 0 ] ERROR bla bla bla
[01/01/21 22:40:27:475 IST] 0000002a SystemOut     O [WebContainer : 0 ] ERROR bla bla bla
[01/01/21 22:40:27:668 IST] 0000002a SystemOut     O [WebContainer : 0 ] ERROR bla bla bla
[01/01/21 22:40:28:211 IST] 0000002a SystemOut     O [WebContainer : 0 ] ERROR bla bla bla
[01/01/21 22:40:29:447 IST] 00000040 SystemOut     O [WebContainer : 4 ] ERROR bla bla bla
[01/01/21 22:40:31:328 IST] 00000036 SystemOut     O [WebContainer : 3 ] ERROR bla bla bla

Yogesh

Ответов: 1

Ответы (1)

Вы пытаетесь сравнить дату в одном формате (%Y-%m-%d) с датами в файле журнала, которые имеют совершенно другой формат (%m/%d/%y). Попробуйте сделать следующее:

awk -v d="$(date --date='now-60 minutes' '+%y%m%d%H%M')" -F'[[/ :]' '($4$2$3$5$6) > d' file

Я предполагаю, что:

  1. 01/01 в вашем примере даты - это месяц/день, а не день/месяц - поменяйте местами $2 и $3, если я ошибся.
  2. Время в вашем входном файле всегда должно быть двузначным, например, 09, а не 9 - если это неправильно, используйте sprintf() для получения временной метки для сравнения, а не просто объединяйте значения.
  3. Вы выполняете скрипт из того же часового пояса, что и даты в файле журнала - если это неправильно, установите TZ=... перед запуском скрипта.

2022 WebDevInsider