Articles

Lire un site web en mode offline grâce à wget

Image
Il existe plusieurs "aspirateurs" de site web, il y a même une extension comme scrapbook pour firefox qui permettent de lire des infos ou une documentation en ligne sur votre netbook même sans connexion réseau mais je dois dire que en ce qui me concerne l'efficacité d'un outil tel que GNU Wget reste le top du must absolu ainsi avec un simple : wget -N -r --no-parent --convert-links http://www.example.com/projects/doc/ c'est tout le contenu du répertoire doc sur le site www.example.com que vous allez pouvoir consulter offline. La documentation de wget est disponible en ligne l'option -r signifie que la récursion est active, l'option  --no-parent  évite d'aspirer les répertoires parents et --convert-links permet de créer une copie contenant des hyperliens pointant correctement Essayez ! Vous verrez que vous ne pourrez plus vous en passer !

Pavé numérique innopérant ou bloqué sous Linux Ubuntu (Avec Gnome)

Si d'aventure d'un coup d'un seul un bô jour vous avez un pavé numérique qui ne semble plus fonctionner... Et ce malgré que que vous appuyez frénétiquement sur NumLock ou non, ça changer rien... Bon et ben je vous épargne de chercher vainement Support de votre clavier S520 Logitech (rien à voir il fonctionne bien au boot) Support des touches multimedia (la touce calculatrice n'y est pour rien) L'évt influence de la conjonction de Mars et Saturne... Non, non que no y que no "señor", il se trouve que vous utilisez Gnome (ou Ubuntu standard peut-être si vous préférez) et vous avez malencontreusement utilisez la combinaison de touche [Shift]+[Num Lock] qui a pour effet sous Gnome de désactiver totalement le pavé numérique Donc il suffit de refaire cette combinaison de touche et tout rentrera dans l'ordre... J'ai perdu une énergie à cause de ce truc... Me demande bien ce qui pouvais se passer dans l'esprit du gars qui a voulu mettre cett...

Changer le prompt en ligne de commande sous Bash

Quand on est tout le temps en train de travailler dans la console, il peut arriver que l'on désire changer le prompt du shell. Ce prompt peut ressembler à qqch du style : cfred@tuxhost:/var/log$ seulement parfois on arrive dans des profondeurs de répertoire qui rendent juste intenable l'affichage du path courant dans le prompt. Dans ce cas il suffit de changer la définition du prompt qui se trouve dans la variable PS1 cfred@tuxhost:/var/log$ SAVE=$PS1 cfred@tuxhost:/var/log$ PS1="\u:\W $ " cfred:log $ echo "Pour restaurer la valeur d'origine il suffira alors de faire" cfred:log $ PS1=$SAVE Il y a plusieurs caractères d'échappement qui peuvent être utilisé comme par exemple : \d pour la date \h le nom du host jusqu'au premier point (sans le suffixe dns) \H le nom du host complet \t l'heure au format 24h HH:MM:SS \T l'heure au format 12h HH:MM:SS \u le nom d'utilisateur courant \w le chemin compl...

postgresql et les encodages

Sur une distribution récente avec la base de données Postgresql je n'arrivais pas à créer une nouvelle BD avec un encodage LATIN1. Après quelques recherches le problème provient du fait qu'a l'installation du paquet le cluster est créé avec un encodage UTF8, pour vérifier regarder la valeur de : /usr/lib/postgresql/8.3/bin/pg_controldata /var/lib/postgresql/8.3/main/ Dans mon cas j'avais : LC_COLLATE:fr_CH.UTF-8 LC_CTYPE: fr_CH.UTF-8 Or le problème avec cette config c'est que du coup quand on veut créer une nouvelle base de données avec un encodage différent rien ne va plus. su postgres -c 'createdb -E LATIN1 -O cgdb goeland' On se voit recevoir un message fort peu sympathique en forme de fin de non-recevoir : createdb: database creation failed: ERREUR: l'encodage LATIN1 ne correspond pas à la locale fr_CH.UTF-8 du serveur DETAIL: Le paramètre LC_CTYPE du serveur nécessite l'encodage UTF8. L'explication se trouve dans la documenta...

Utiliser rsync pour syncroniser de gros volumes de données

Image
On se retrouve parfois dans la situation ou on a un serveur principal qui contient un certain volume de données qui doivent être copiée à intervalle régulier sur des serveurs "miroirs". Dans ces cas de figures il peut être intéressant de configurer d'apprendre à utiliser la commande rsync (voire même de configurer un serveur rsync). Cet utilitaire du projet samba maintenu par Wayne Davison est excellent pour les transferts de fichier en mode incrémental. Il y a une excellente documentation et de nombreux exemples sur le site du projet http://www.samba.org/rsync/ . S'il n'est pas déjà présent sur votre box, il peut être installé relativement facilement sur votre distribution Linux avec les outils de paquetages adapté ( yum install rsync rpm sous fedora & co, et apt-get install rsync pour debian, ubuntu et dérivés) Dans mon cas je l'utilise dans des scripts executé par des crontab toutes les nuits pour synchroniser quotidiennement plus de 80 GB de géodo...

Avoir une belle distro SliTaz sur sa clé USB

Avec l'utilitaire UNetbootin on peut intaller en quelques click de souris une chouette Distribution Linux comme par exemple la fameuse distro SliTaz (30 mb de concentré de bonheur) sur sa clé USB favorite

Comment comparer (et connaitre) les paquets debian installés sur 2 serveurs

Je me suis retrouvé dans la situation ou je voulais connaitre la liste des paquets installés sur une Debian 5.0 Lenny et comparer cette liste avec ce qui était sur un autre serveur. Tout d'abord pour obtenir une liste exhaustive des paquets présent sur un serveur Debian j'utilise l'excellent dpkg . dpkg -l va donner une liste des paquets installés par ordre alphabétique avec version et description et status, qqch du style: gocarto01:~# dpkg -l Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-=================================-=================================-================================================================================== ii adduser 3.110 add and remove users and gr...

Augmenter la taille d'un volume logique LVM2 online

J'ai installé proxmox sur un de mes serveurs contenant 2 disques physiques en miroir RAID1 (raid hard avec un controlleur PERC) vu comme /dev/sda d'une taille de 73GB par Linux. Proxmox installé avec un partitionnment par défaut j'avais au final le partitionnment suivant sur le disque : calc0:/var/lib/vz# fdisk /dev/sda -l Disk /dev/sda: 73.5 GB, 73555509248 bytes 255 heads, 63 sectors/track, 8942 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 66 524288 83 Linux /dev/sda2 66 8942 71302295 8e Linux LVM et au niveau du LVM j'avais les infos suivantes au niveau physique, de "volume group" et logique: calc0nokvm:/var/lib/vz# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name pve PV Size 68.00 GB / not usable 0 Allocatable yes (but full) PE Size (KBy...

Utilisation de Proxmox derrière un Proxy

J'utilise depuis peu la distribution Proxmox comme environnent de virtualisation. Seulement il se trouve que dans le réseau ou j'utilise cette distribution je dois utiliser un proxy pour sortir sur le Net. Voici les modifications qu'il faut effectuer dans l'installation de base pour que tout cela fonctionne correctement. Pour que "apt-get update" et "apt-get upgrade" fonctionne on modifie (ou le cas échéant création) du fichier /etc/apt/apt.conf contenant au moins la ligne : Acquire::http::Proxy "http://10.1.253.63:3128"; Pour que wget fonctionne on modifie le fichier /etc/wgetrc aux environs de la ligne 79 on enlève le commentaire en supprimant le # et on corrige l'adresse du proxy comme suit : http_proxy = http://10.1.253.63:3128/ Pour que la commande "pveam update" fonctionne on modifie le fichier : /usr/share/perl5/PVE/APLInfo.pm après la ligne 84 dans la méthode update on ajoute : # this code works for ftp and htt...

Sur la coloration syntaxique dans Vim sur Debian

Je travaille en ce moment sur la configuration d'un serveur ProxMox. Cette distribution permet de mettre en oeuvre un serveur de virtualisation assez rapidement en s'appuyant sur une debian 64 bit et sur les outils kvm que j'utilise déjà depuis un bon bout de temps sur Gentoo et OpenVz (une solution de virtualisation "container" pour Linux que je découvre), il faudra d'ailleurs que je fasse un post rien que sur ça. En attendant je vous livre l'url publique de mon blocnotes sur la virtualisation Bref toujours est-il que dans mon envirronement réseau je suis dérrière un Proxy et qu'il a fallu que je fasse 2-3 modifs pour que tout cela fonctionne. Et comme ProxMox utilise les modules PVE en perl et que j'en avais marre de voir le code Perl dans /usr/share/perl5/PVE/ en Noir et Blanc avec vim je voulais activer la coloration syntaxique en faisant un syntax enable en mode commande dans Vim et je me vois répondre que c'est Nicht Supportieren dans c...

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...