Articles

Affichage des articles du 2008

Convertir des fichier Tiff en Geotiff avec gdal

J'avais un répertoire plein de fichiers tif avec les fichiers tfw. Je voulais pouvoir me retrouver avec toutes ces images converties en Geotiff . L'avantage ensuite c'est que l'on a inclus dans le fichier image tiff toute les informations de géoréférencement. Pour cela on a besoin d'un seul outil : gdal_translate de l'excellente suite d'outil Gdal Ainsi avec la commande : for i in `ls -1 *.tif`; do (gdal_translate -of GTiff -a_srs EPSG:4149 $i `basename $i .tif`_geo.tif); done tous les fichiers d'origine de votre répertoire serons préservés et pour chaque fichier tif MonBoFichier.tif il y aura un nouveau fichier MonBoFichier_geo.tif qui aura été créé. Et ces nouveaux fichiers contiennent des informations de géoréférencement comme vous pouvez le constater en lancant un tiffinfo ou mieux un : listgeo cn41_geo.tif Geotiff_Information: Version: 1 Key_Revision: 1.0 Tagged_Information: ModelTiepointTag (2,3): 0 0

Backuper toutes les bases de données d'un serveur Postgresql

Il se trouve que je viens de décider d'updater mon Postgresql 8.3 sur mon serveur de développement. Mais avant de basculer de la 8.2 à la 8.3 j'aimerais faire un backup de chacune de mes bases de données. Comme c'est une opération que je fais assez régulièrement je décide d'écrire un petit script que voici: #!/bin/bash ## Script : DBBAckup.sh allows to backup a postgresql database USAGE=" Usage : `basename $0 ` dbnametobackup [postgresql_server(=localhost by default)] " CGDATE=`date -I` if [ $# -lt 2 ] ; then if [ $# -lt 1 ] ; then echo " $USAGE " exit 1 else DBName= $1 DBServer='localhost' fi else DBName=$1 DBServer=$2 fi BackupPath=" DBBackup_${DBName}_${CGDATE}_Compressed.backup " echo " ****Started backup of db $DBName at `date`, log of operation is in $BackupPath.log " if pg_dump --ignore-version --verbose --format=c --oids -h $DBServer

FireFox 3 ça y est 5'690'000 download à 12h heure de Berck

Image
Vous pouvez suivre le décompte du nombre de download en temps réel chez Mozilla Et chez Framasoft vous pouvez trouver un petit guide des nouveautés de FireFox 3 en Français qui est une traduction de l'article en anglais " A Field Guide to FireFox 3 " de Debra Lyn Richardson

Le plus bô des navigateurs fait peau neuve

Image
Il est beau il est frais il est dans les étalages : le tout nouveau FireFox 3 sera disponible dans les heures qui viennent et c'est la bonne occasion de rappeler à tout un chacun d'aller chercher sa toute nouvelle version. J'ai déjà pas mal utilisé pour ma part les versions 3 beta et candidate release et le premier constat que j'ai pu faire c'est une plus grande RAPIDITE . Oui, Firefox 3 est sacrément plus rapide sur des pages web 2 bien chargées. L'autre point que je trouve fabuleux c'est un support encore accru des normes dont au niveau graphique SVG et CANVAS .D'ailleurs je rpofite de signaler un essai particulièrement intéressant d'intégration avec OpenGL dans le projet CANVAS 3D démarré par Vladimir Vukicevic. Mais il faut aussi et surtout dire que c'est la première version de FireFox qui utilise le moteur de rendu et de layout Gecko 1.9 . Et on pourrait écrire un livre entier sur tout ce que l'on peut faire juste avec Gecko. D'ai

Detecter des images foireuses

Image
Lorsque l'on doit retrouver dans une arborescence toutes les images jpeg,gif ou png qui n'en sont pas, parce que une "bonne âme" a fait une malencontreuse "erreur" lors d'un transfert de fichiers qui c'est mal passé et que la "bonne âme" en question n'a pas pris la peine de tester son boulot... Enfin bref je veux donc détecter toutes les images qui n'en sont pas. Première étape, détecter tous les fichiers qui finissent par gif,png et jpg : find mydirectory/ -regextype egrep -iregex '.+\.(png|gif|jpg)' Cette commande va me trouver tous les fichiers qui possèdent un nom qui va se terminer par un .png ou un .gi ou encore un .jpg. Ok on a la liste de toutes les images reste à trier le bon grain de l'ivraie pour cela je vais utiliser la commande identify du superbe Imagemagick Cet outil très puissant permet entre autre de traiter des images en ligne de commande et il se trouve qu'avec identify on va laisser imagemagick

Extraire tous les textes de liens dans un tag

Soit une page html contenant une liste de fichiers du style de ce que l'on trouve dans une page d'index générée par le serveur Apache. Je veux en extraire tous les noms de fichiers. Donc en résumé j'ai quelque chose du style : <img src="compressed.gif" alt="[ ]" height="22" width="20"> <a href="http://mirror.switch.ch/ftp/mirror/gentoo/distfiles/zsh-lovers_0.5.orig.tar.gz">zsh-lovers_0.5.orig.tar.gz</a> 01-Aug-2006 18:05 487K <img src="unknown.gif" alt="[ ]" height="22" width="20"> <a href="http://mirror.switch.ch/ftp/mirror/gentoo/distfiles/zsnes151src.tar.bz2">zsnes151src.tar.bz2</a> 25-Jan-2007 02:22 1.0M <img src="compressed.gif" alt="[ ]" height="22" width="20"> <a href="http://mirror.switch.ch/ftp/mirror/gentoo/distfiles/zssh-1.5a.tgz">zssh-1.5a.tgz</a> 2

esound emerge failed

J'ai eu une plantée de jade lors de mon emerge -pvuD world sur le ebuild media-sound/esound-0.2.38-r1 en fait c'est pas la première fois que j'ai des ennuis avec jade lors d'un ebuild or ce qui est ennuyant c'est que malgré le fait que j'avais utilisé un USE -doc sur ce ebuild à la compilation il s'obstinait à vouloir lancer openjade et à planter systématiquement. Quelques google-minutes plus tard je trouvais la solution sur le forum gentoo en fait il s'agit d'une corruption possible de /etc/sgml et la solution est de refaire un build de sgml-common avec : emerge -v app-text/sgml-common l'histoire complète se trouve sur cette entrée du bugzilla gentoo

Comment extraire une "zone" de texte

Il arrive qu'on aie besoin de sortir tout ce qu'il y a en tre blabla et blabli et bien en perl on peut utiliser lkes ranges avec l'opérateur '..'. Ainsi avec perl -ne 'print if /<title.*>/../<\/title>;/' index.html On obtient uniquement le titre de la page Bien sur rien n'empêche d'utiliser l'excellent LWP pour récupérer la page perl -MLWP::Simple -e 'getprint q(http://lapt.blogspot.com)'

Exécuter une commande sur plusieurs serveurs

Comme il m'arrive de plus en plus souvent de devoir exécuter une commande sur plusieurs serveurs Linux, je devais trouver une solution efficace et élégante pour éviter de lancer n fois un ssh NomServeuri MAcommande. Bien entendu cette solution existe déjà elle s'appelle DSH pour distributed shell (ou dancer shell ) et un fois installé elle permet de lancer un : dsh -a -M -c -- geos-config --version pour connaitre la version de geos installé sur chaque serveur l'option -a indique que l'on veut lancer la commande sur toutes les machines se trouvant dans /etc/dsh/machines.list l'option -c indique que l'on veut lancer la commande en mode concurrent l'option -M préfixe la sortie des commandes avec le nom du serveur qui a envoyé la réponse le fichier /etc/dsh/dsh.conf permet de configurer les valeurs par défaut de certaines options Cet outil est une source d'efficacité extraordinaire quand on a plusieurs serveurs et bien sur comme toujours pour un outil puis

Compter le nombre de codes HTTP dans des fichiers logs avec awk

Image
Aujourd'hui je devais sortir rapidement la liste des différents codes HTTP de tous les fichiers logs IIS. Comme expliqué dans mon post précédent j'ai un fichier par jour et environ 16 GB de fichiers logs sur une année... Dans un fichier log pour un serveur web il y a en général un code indiquant le status de l'opération réalisée. Ainsi dans IIS on peut utiliser un format de log W3C qui affichera la colonne sc-status pour le Http status code ainsi que la colonne sc-substatus. Mon but est de parcourir tous les fichiers logs et de calculer le nombre de fois que l'on trouve chacun de ces status code. On pourrait le faire avec du perl, mais je préfère aujourd'hui essayer awk présent sur toutes les bonnes distros Linux en standard. awk ou le plus répandu et moderne gawk est un outil formidable pour traiter très rapidement des gros volumes de données au format texte. Commençons par un exemple simple : je veux trouver toutes les lignes du log ou le code d'état HTTP es

Analyse de fichiers Log en perl

Quand il faut analyser de grandes quantité de données sous format texte tel que des fichiers logs, Perl est d'une aide inappréciable. Voici un joli "perl oneliner" qui va calculer le nombre de hits par user login dans un log IIS perl -ne 'unless (/^#.*$/) {@e=split(/ /,$_); $Login{uc($e[8])}++;} END{foreach $key (sort keys %Login){printf(qq(%-25s %i\n),$key,$Login{$key}); } }' 2007/ex070106.log 2007/ex070107.log |sort -k 2nr >DistinctsLogins200701.txt Analysons un peu cette ligne de commande: perl -ne : on lance perl avec les option -n qui rajoute une boucle while ( <> ) {...} implicite et l'option -e qui permet justement d'exécuter une commande cf doc perl en ligne 'unless (/^#.*$/) { : viens maintenant le début du programme perl, en l'occurrence on dit que tant qu'on est pas dans une ligne de commentaire on va faire quelque chose se trouvant après l'accolade ouvrante. En effet dans les fichiers logs une ligne commentaire c

Downloader un fichier sur le net sous Win32

Il est parfois nécessaire de récupérer un ou plusieurs fichiers sur le net en ligne de commande sous Microsoft. Pour cela il suffit d'utiliser l'excellent curl compilé pour cette plateforme. Ensuite de quoi il faut penser à utiliser un utilisateur null avec l'option -u ":" . Ainsi cela force curl à utiliser les credentials du compte courant, c'est à dire le user qui est connecté. Chez moi au final cela donne curl --anyauth -u ":" -x "" --netrc http://www.test.com/logs/ l'option -x "" annule une evt variable d'environnement définissant un proxy, elle est utile par exemple quand vous ne voulez pas utilisez le proxy parceque votre serveur est dans votre réseau local (et pas sur internet) A vous de voir si vous en avez besoin ou pas selon les cas.