Прежде всего не ожидайте, что это будет легкой работой с несколькими дистрибутивами.
Я не выполнил большие настольные развертывания. Для меня лучший компромисс использовал LAN boot/tftp для начальной загрузки системы, затем выполняющей установку по NFS. Большая часть дистрибутива Linux просит у Вас всю начальную конфигурацию впереди - затем можно ли оставить установщик, чтобы работать за, сказать 40 минут, необслуживаемых (не, "Вы действительно хотите, запускает эту программу?" подсказки). В той точке я заботился о машинах Redhat и SuSe - и имел об/мин, прошедшего предварительную подготовку со всеми пользовательскими конфигурациями, которые я установил после стандартной завершенной установки. Однако его довольно возможное для автоматизации всего этого на множестве дистрибутивов.
Я не большой поклонник распределения Ubuntu по различным причинам, но Lanscape Canonical является очень впечатляющим инструментом. И если Вы собираетесь быть выполнением большого количества крупномасштабных установок/управления Ubuntu несколько рабочих столов Ubuntu определенно стоящий более внимательного рассмотрения.
Это похоже на задание для awk. Принятие Ваших журналов достаточно регулярно (в особенности, я извлекаю сеансовые куки как 6-е поле):
<foo.log awk '
/about to call/ {target[$6]=$0;}
/AbstractEngineServlet.*timeout/ {print target[$6]; print;}
'
for i in `grep timeout log.txt|awk '{print $6}'`;
do
grep $i log.txt;
echo "-----------------";
done
Непротестированный, но что-то как
#!/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;
}
}
}
вероятно, работы.