aziraphale.org

Login

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 !
^__^

Les prochains concerts sur Paris

Je me suis amusé avec Google Calendar, et ai fait une sélection totalement subjective et absolument pas exhaustive des prochains concerts qui auront lieu sur Paris. Enfin, de ceux qui sont susceptibles de m'intéresser !

J'en connais que certains concerts devraient aussi intéresser...

EMACS (Escape, Meta, Alternate, Control, Shift)

User Friendly

Trouvé là : User Friendly.

À tous les geeks qui passent par là...

Dating Pools


Fixed Width


Letting Go


Regular Expressions


Lisp


Trouvés là : XKCD.

Pourquoi les mecs sympas sont-ils gays ?

Trouvé là : Nothing Nice to Say.

EDIT : Remplacement de l'image "rétrécie" via les propriétés par une image locale (le rendu était ok via Firefox sur mon Mac, mais dégueu via Firefox Win32. Allez comprendre...)

French Perl Workshop 2007

Le French Perl Workshop 2007 se passera à Lyon, les 16 et 17 Novembre.

Teaser :

Cette vidéo a été diffusée à YAPC::Europe 2007.
Très gros succès ;-)

EDIT : Vidéo remplacée par une vidéo Google. L'original reste accessible

EDIT2 : en français, on appelle ça "Les Journées Perl 2007" :-)

Apache Reverse Proxy (ou : comment bypasser certaines "limitations professionnelles")

Un des trucs qui m'énerve souvent en clientèle, c'est les règles de filtrage des proxys. Que les sites de c*l soient filtrés, rien à redire ; que Bloglines, syndicateur de feeds RSS le soit, là, ça me... pénalise.

Donc, ayant un serveur à disposition, un Apache qui tourne dessus, un mod_proxy, la manière pour arriver à mes fins est de monter un vhost faisant du reverse proxy, pardon, office de serveur mandataire :

<VirtualHost *:443>
    DocumentRoot /var/wwwroot/bl.mon-domaine.com
    SSLEngine On
    SSLCertificateFile /etc/apache2/mon-domaine.com-cert.pem
    SSLCertificateKeyFile /etc/apache2/mon-domaine.com-key.pem
    ServerName bl.mon-domaine.com
    Errorlog /var/log/apache2/bl.mon-domaine.com.error.log
    CustomLog /var/log/apache2/bl.mon-domaine.com.access.log combined
    <Location />
      Order allow,deny
      Allow from all
      AuthName "restricted stuff"
      AuthType Basic
      AuthUserFile /etc/apache2/users
      require valid-user
    </location>
    ProxyRequests Off
    ProxyPass / http://www.bloglines.com/
    ProxyPassReverse / http://www.bloglines.com/
</VirtualHost>

Et voili !