Du Perl pour l'extraction de logs, à l'arrache
Ou : comment extraire les infos intéressantes d'un ramassis de logs applicatives, correspondant à des traitements lancés "en sournois" via des jobs Oracle.
for i in Pkg_Tfj*trc*
do
echo $i | perl -nle 'exit 1 if m/.+\.gz$/'
if [ $? -eq 1 ]
then
gzcat $i | perl -nle 'print if m/(?:P_TFJAuto.+(?:Debut|Fin)\s\s|Erreur)/'
else
cat $i | perl -nle 'print if m/(?:P_TFJAuto.+(?:Debut|Fin)\s\s|Erreur)/'
fi
done| \
perl -nle '$a{$3.$2.$1.$4}=$_ if m{^(\d+)/(\d+)/(\d+)(.+)};
END{print $a{$_}foreach sort keys %a}'
Qui nous donnera un magnifique :
(...)
19/09/07 22:30:05 -P_TFJAuto ---- Debut ----xxx
19/09/07 23:24:48 -P_TFJAuto ---- Fin ----xxx
20/09/07 22:30:06 -P_TFJAuto ---- Debut ----xxx
20/09/07 23:28:59 -P_TFJAuto ---- Fin ----xxx
21/09/07 22:30:02 -P_TFJAuto ---- Debut ----xxx
21/09/07 23:29:48 -P_TFJAuto ---- Fin ----xxx
24/09/07 22:30:04 -P_TFJAuto ---- Debut ----xxx
24/09/07 23:29:39 -P_TFJAuto ---- Fin ----xxx
25/09/07 22:30:05 -P_TFJAuto ---- Debut ----xxx
26/09/07 06:49:19 -P_TFJAuto ---- Fin ----xxx
27/09/07 02:00:03 -P_TFJAuto ---- Debut ----xxx
27/09/07 02:02:58 -Erreur dans TFJ
27/09/07 02:02:58 -P_TFJAuto ---- Fin ----xxx
La dernière ligne de Perl servant à trier les logs par ordre chronologique (dates dans les logs au format français... application "professionnelle").
Je laisse le soin au lecteur d'utiliser les données extraites pour calculer les temps de traitement !
^__^
jeudi 27 septembre 2007 à 19:04 | 



Commentaires
Le vendredi 28 septembre 2007 à 11:17, par Mahie :: site :: #
Le vendredi 28 septembre 2007 à 11:27, par Éric :: site :: #
Le vendredi 28 septembre 2007 à 12:20, par Mahie :: site :: #
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.