Солярис находит предыдущую строку журнала

Прежде всего не ожидайте, что это будет легкой работой с несколькими дистрибутивами.

Я не выполнил большие настольные развертывания. Для меня лучший компромисс использовал LAN boot/tftp для начальной загрузки системы, затем выполняющей установку по NFS. Большая часть дистрибутива Linux просит у Вас всю начальную конфигурацию впереди - затем можно ли оставить установщик, чтобы работать за, сказать 40 минут, необслуживаемых (не, "Вы действительно хотите, запускает эту программу?" подсказки). В той точке я заботился о машинах Redhat и SuSe - и имел об/мин, прошедшего предварительную подготовку со всеми пользовательскими конфигурациями, которые я установил после стандартной завершенной установки. Однако его довольно возможное для автоматизации всего этого на множестве дистрибутивов.

Я не большой поклонник распределения Ubuntu по различным причинам, но Lanscape Canonical является очень впечатляющим инструментом. И если Вы собираетесь быть выполнением большого количества крупномасштабных установок/управления Ubuntu несколько рабочих столов Ubuntu определенно стоящий более внимательного рассмотрения.

2
30.11.2010, 23:18
3 ответа

Это похоже на задание для awk. Принятие Ваших журналов достаточно регулярно (в особенности, я извлекаю сеансовые куки как 6-е поле):

<foo.log awk '
  /about to call/ {target[$6]=$0;}
  /AbstractEngineServlet.*timeout/ {print target[$6]; print;}
'
1
27.01.2020, 22:24
  • 1
    я думаю, что могу работать с этим. У меня не будет ответа на то, работал ли он немедленно (я упростил свой вопрос). –  Wes 01.12.2010, 00:20
  • 2
    Работает отлично. Я хотел бы понять это, где я могу найти достойный ресурс на AWK (или это должно быть отдельным вопросом)? –  Wes 01.12.2010, 23:18
  • 3
    @Wes: существует A, W и книга классика K и более свежая книга O'Reilly. GNU awk руководство также читаем (это преподает GNU awk, не портативный awk, однако). Или можно извлечь уроки примером из форумов Unix плюс справочники. –  Gilles 'SO- stop being evil' 02.12.2010, 02:56
for i in `grep timeout log.txt|awk '{print $6}'`;
do
  grep $i log.txt;
  echo "-----------------";
done
0
27.01.2020, 22:24

Непротестированный, но что-то как

#!/usr/bin/env perl

my %lastline;

while (<>) {
    if (/\b([[:xdigit:]]{32})\b/) {
        if (/INFO/) {
            $lastline{$1} = $_;
        }
        elsif (/ERROR/) {
            print delete $lastline{$1} if exists $lastline{$1};
            print;
        }
    }
}

вероятно, работы.

0
27.01.2020, 22:24

Теги

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