Я пытаюсь добавить текст в вывод / var / log / messages всякий раз, когда метка времени между двумя последовательными журналами отличается, например:
предыдущий журнал: 00: 01: 5 9 и текущий журнал 00: 02: 0 0
или
предыдущий журнал: 00: 01: 4 9 и текущий журнал 00: 01: 5 0
над подстрокой временной метки, если она отличается в последовательном журнале, добавить некоторое сообщение к $0
.
Вы можете выполнить команду ниже, она работает в течение 1 минуты, требуется в течение 10 секунд.
tail -f /var/log/messages |awk '{split($3,a,":");split($3,b,"");new_time=a[1]":"a[2]":"b[1]; if(prev_time==new_time) print $0; else print "10 Second group is over, starting new: "$0" "prev_time " "new_time } {split($3,a,":");split($3,b,"");prev_time=a[1]":"a[2]":"b[1]}'
Требуемый результат - изменение вышеуказанной команды для печати того же сообщения в 10-секундном промежутке между журналами, в настоящее время выполняется в течение 1 минуты. Я использовал split () для захвата 'HH:MM:S
", а не" HH:MM:SS
", поэтому всякий раз, когда простые' HH:MM:S
" и текущие 'HH:MM:S
"различаются, выведите сообщение" 10 Second group is over, starting new: $0
". Не уверен, что ошибка здесь.
Короче говоря, в настоящее время он работает, когда меняется минута, он мне нужен, когда секунда меняется с 39 на 40 секунд или с 09 секунд на 10 секунд. НЕ 11 сек до 12 сек ЧЧ: ММ: S S, жирным шрифтом S необходимо изменить.
Пример строки:
Jan 23 15:09:54 foo bar
Jan 23 15:10:04 bla bla