Не работает изменение формата даты журнала - PullRequest
0 голосов
/ 12 октября 2018

Мой формат журнала:

INFO  2018-10-12T09:17:24,530 (EventThread /dev/ttyS1) [T11.java][log:248] - [11:11:11]  [RHAZCLPassthroughMessage]
INFO  2018-10-12T09:17:24,532 (TXTHREAD/dev/ttyS1) [T11.java][log:248] - [00:00:00]:   [RHAStatusResponse]
WARN  2018-10-12T09:17:24,536 (EventThread /dev/ttyS1) [T12.java][handlePassthrough:278] - RHAZCLPassthroughMessage SN:30 
INFO  2018-10-12T09:17:24,709 (EventThread /dev/ttyS1) [T11.java][log:248]  [RHAZCLPassthroughMessage]
INFO  2018-10-12T09:17:24,711 (TXTHREAD/dev/ttyS1) [T11.java][log:248] - [00:00:00]:  [RHAStatusResponse]
WARN  2018-10-12T09:17:24,718 (EventThread /dev/ttyS1) [T12.java][handlePassthrough:278] - RHAZCLPassthroughMessage SN:30 
INFO  2018-10-12T09:17:25,991 (OkHttp https://fhk.com/...) [APICallback.java][onResponse:90] - Code: 204, Service: collector-staging

Мой сценарий для получения журнала прошедшего часа

date1=$(date -d"now 1 hour ago" "+%FT%T"000"") date2=$(date -d"now 1 hour ago" "+%d") awk -v Date1="$date1" -v Date2="$date2" '{ if ($2 > Date1 && $2 >= Date2) print $2}' /var/log/log.log

Но здесь все журналы печатаются?Что-то не так в сценарии?Так что здесь мне нужен журнал только за один час.

1 Ответ

0 голосов
/ 12 октября 2018

использовать внутреннюю функцию strftime и systime (только для версии GNU)

awk 'BEGIN{ 
      # 1 hour before last hour
      BefHr = 1
      Lower=strftime( "%Y-%m-%dT%H:%M:%S", systime()-((BefHr + 1)*3600) - 1)
      Upper=strftime( "%Y-%m-%dT%H:%M:%S", systime()- (BefHr*3600) + 1)
      }
   $2 > Lower && $2 < Upper
   ' /var/log/log.log
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...