Articles

Affichage des articles du 2005

Traiter des valeurs avec perl dans un log

Il m'arrive régulièrement d'automatiser des tâches avec des scripts en perl ou en bash. Typiquement voici un exemple de petit script qui va effectuer une syncronisation avec rsync et garder une trace dans un log de tout problèmes éventuel. #!/usr/bin/bash RSYNC="/usr/bin/rsync" OPTS="-va --stats --partial --partial-dir=tmp --safe-links --no-implied-dirs --timeout=300 --exclude-from=rsync_excluded.txt" SRC1="rsync://myserver.mydomain.org/mydirectory/" DST1="mylocal_directory/" echo "Started update at" `date` >> $0.log 2>&1 logger -t rsync "re-rsyncing witm my remote rsync directory" ${RSYNC} ${OPTS} ${SRC1} ${DST1} >> $0.log 2>&1 echo "End: "`date` >> $0.log 2>&1 Okay, maintenant après quelque mois d'exploitation vous vous retrouverez avec un fichier contenant beaucoup d'informations. Si vous voulez récupérez une partie, et seulement une partie un petit bout de

Obtenir la liste des paquetages "ebuilds" sous Gentoo

Image
Quand on utilise la distribution Gentoo sur plusieurs serveurs comme c'est le cas en ce qui me concerne, il peut être intéressant de retrouver rapidement la liste des paquetages wue l'on emerger par le passé. Bien sur certain dirons qu'il suffit de regarder le contenu du "world" et faire un : less /var/lib/portage/world pour voir la liste des paquetages installé expressement sur cette machine... Sauf que bien souvent on aimerait bien avoir un peu plus d'informations, c'est pour cela que j'utilise les outils du paquetage gentoolkit notamment l'utilitaire qpkg qui permet d'obtenir des informations sur un paquetages précis. Donc vous pouvez installer le paquetage gentoolkit avec un : emerge -v gentoolkit puis ensuite vous puvez voir tout ce qui a été installé en lançant un : equery f gentoolkit ce qui va vous lister les fichiers contenus dans le paquetage en question. Comme le but de toute l'opération était de pouvoir ressortir plus d'on

Dans la jungle des blogs !

Image
Waouhh, il est très difficile de comprendre la logique de google, j'en étais à ma Xième tentative d'enregistrement de mon blog sur google quand j'ai commencé à sérieusement me demander si le moteur d'indexation de «Gogol» n'était pas un peu inspiré de la logique floue voire du mouvement brownien... En effet il semble parfois impossible de faire fonctionner ce maudit moteur pour qu'il indexe mon blog. Damned ! Je commence sérieusement à douter de l'engin, il faut que je me veille avant de basculer dans le côté obscur de la Force... Du coup j'ai voulu vérifier au niveau des autres blogs comment cela se passe, et dans mes pérégrinations je suis tombé sur blogwise que je trouve assez cool. L'idée d'indexer et de classer des blogs uniquement me semble être une tâche titanesque, il y a quasiment 40'000 blogs sur ce site, mais comment assuré un minimum de pertinence. Et dans le genre débile on a les plus de 6'176'200 blogs annoncés comme in

Perl : Comment afficher des "gros" chiffres avec un séparateur de milliers ?

Hummm quand il s'agit de lire des très grand chifres à l'écran, il n'est pas très pratique de devoir compter à la main sur l'écran les groupes de milliers... Et donc un séprateur de millier prend tout son sens : 1'456'987 est plus lisible que 1456987 ! c'est ainsi que Perl devient votre petit à petit votre alié quotidien. Car à l'aide des expressions régulières et de l'opérateur de substitution il est très facile d'obtenir l'effet escompté en 3 lignes ! En éxécutant le code ci-dessous on obtient . My personal fortune is 1'234'567 US$ #!/usr/bin/perl -w use strict; my $test = "My personal fortune is 1234567 US\$"; print PrintStringWithThousandSeparator($test); sub PrintStringWithThousandSeparator { my $Newtext = $_[0]; $Newtext =~ s/(?<=\d)(?=(?:\d\d\d)+(?!\d))/'/g; return $Newtext; }

ReverseProxy avec Apache

Quand on veut permettre à un utilisateur lambda d'accèder sur un reseau public d'accèder à des informations sur un site web 192.168.50.120 situé dans un réseau privé, deux possibiliés s'offre à nous: On peut prendre un serveur Linux et avec deux cartes réseau : une côté publique - eth0[10.163.200.9], une côté privé - eth1[192.168.50 77]) l'utiliser comme un Firewall avec les iptables et une règle DNAT pour ouvrir un port sur l'interface publique du firewall qui redirigera les demandes sur le serveur web du réseau privé exemple: echo 1> /proc/sys/net/ipv4/ip_forward iptables -t nat -A PREROUTING -i eth0 -p tcp -d 10.163.200.9 --dport 80 -j DNAT --to-destination 192.168.50.120 Ou on peut configurer un reverse proxy avec Apache ou Squid sur le Firewall Dans le deuxieme cas on a plus de souplesse car on peut intervenir sur chaque url par exemple avec mod_rewite mais tout d'abord la config nécess

Du code portable Win32-Linux

Pour obtenir très rapidement du code utilisant du graphisme et fonctionnant aussi bien sous Linux que sous Microsoft, je dois dire que le couple OpenGL /GLUT reste des valeurs sures à mes yeux. Ainsi le code ci-après fonctionne et se compile pil-poil sous win32 et sous Linux: /* My First GLUT chtit bout de code pour compiler sous linux : gcc -o cgglut01 cgglut01.cpp -lglut -lX11 -lGL -lGLU */ #include void display(void) { glClear (GL_COLOR_BUFFER_BIT); // draw blue rectangle with corners at // (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0) glColor3f (0.0, 0.0, 1.0); glBegin(GL_POLYGON); glVertex3f (0.25, 0.25, 0.0); glVertex3f (0.75, 0.25, 0.0); glVertex3f (0.75, 0.75, 0.0); glVertex3f (0.25, 0.75, 0.0); glEnd(); // start processing buffered OpenGL routines glFlush (); } void init (void) { glClearColor (0.0, 0.0, 0.0, 0.0);// select clearing color background /* initialize viewing values */ glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrt