Radiohead - Nude (Low Tech)
Trouvé là.
aziraphale.org:~# uptime 23:49:05 up 454 days, 9:34, 1 user, load average: 0.39, 0.38, 0.16 aziraphale.org:~# shutdown -r now The system is going down for reboot NOW!
Résultats "intéressants" :
perl -ne 'next unless /^To: (.+)$/;@a=split/[,;]/,$1;for(@a){s/ //g;if(/<(.+\@.+)>/){$a{$1}++}else{$a{$_}++}};END{for(sort keys %a){printf"%-50s %4s\n",$_,$a{$_} if m/aziraphale/}}' Inbox
Yep, le code est imbitable, et trop long pour un uniligne...
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 !
^__^
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 là
EDIT2 : en français, on appelle ça "Les Journées Perl 2007" :-)
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 !