Articles

Affichage des articles du 2011

Comment ajouter des sauts (retour) à la ligne dans un énorme xml d'une seule ligne !

J'avais un grand fichier récupéré via un curl : curl -#v -o /tmp/output.xml "http://www.myserver.ch/extraction_file.php?mode=complex&typef=xml" le problème c'est que ce fichier "output.xml" était un gros xml valide d'une seule  ligne... un "wc -l /tmp/output.xml"  me retourne bien 1 ! Or la plupart des éditeurs n'aiment pas trop ouvrir ce genre de fichier d'une seule "énorme" ligne, voire même ils plantent lamentablement. La solution est d'utiliser un bon vieux oneliner en perl pour rajouter un saut de ligne après un tag fermant : perl -i -pe 's/<\/Adr>/<\/Adr>\n/g' /tmp/output.xml Et voilà , maintenant le fichier contient autant de ligne qu'il y a de tags fermants . Et du coup il est beaucoup plus facile à utiliser dans votre éditeur favori !

Génération automatique d'une liste de requêtes sql pour toutes les tables de Postgresql

Image
Il arrive assez régulièrement que l'on doive appliquer une modification à toute les tables d'une base de données postgresql . Par exemple s'il faut rajouter un droit de consultation pour un user particulier sur toutes les tables. On peut bien entendu se palucher à la main tous les : GRANT SELECT ON TABLE altitude TO userdbreadonly; pour autant de tables qu'il y a dans la base... Mais comme un bon informaticien déteste toutes les tâches répétitives,  il préférera trouver comment  écrire une requête dont le résultat correspondra à la liste des ordres sql qu'il veut exécuter, soit dans ce cas : SELECT 'GRANT SELECT ON TABLE ' || tablename || ' TO cgdbreadonly;' FROM pg_tables WHERE schemaname like 'public'  ORDER BY 1; qui lui retournera la liste de tous les GRANT SELECT pour toutes les tables liste qu'il n'aura plus qu'à exécuter...

GPG error sur template Openvz debian6 lors du apt-get update

Je venais de créer une nouvelle machine virtuelle openvz sur proxmox basée sur le template debian 6 amd64bit :debian-6.0-standard_6.0-2_amd64.tar.gz Une fois connecté dessus en ssh je lance un: apt-get update et j'obtiens un message d'erreur : W: GPG error: http://security.debian.org squeeze/updates Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA W: GPG error: http://ftp.debian.org squeeze Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041F La solution consiste par la mise a niveau du keyring debian avec un simple : apt-get install debian-archive-keyring j'ai pu ensuite relancer le apt-get update qui c'est déroulé sans accroc.

Comment copier une machine virtuelle kvm en raw sur un Volume Group LVM2 se trouvant sur un disque en DRBD

Image
Il se trouve que je devais migrer quelques machines virtuelle se trouvant sur un cluster proxmox sur le site de Lausanne, sur un autre cluster proxmox se trouvant à Lutry. Jusque-la rien de bien sorcier me direz-vous, si ce n'est qu'avec un lien réseau de faible débit entre les deux sites j'ai fait une copie initiale de mes images de bécannes virtuelles en fichier raw sur un disque externe. Sur le site de Lutry j'ai une config avec deux serveurs en cluster proxmox  lutrycalc01:~# pveca -l CID----IPADDRESS----ROLE-STATE--------UPTIME---LOAD----MEM---DISK  1 : 192.168.50.100  M     A     1 day 05:49   2.23     8%     1%  2 : 192.168.50.110  N     A     1 day 05:49   0.00     1%     1% chaque serveur à 3 disques logiques (de taillse identique) s'appuyant sur une config physique en RAID5. le 2ème disque logique /dev/sdb1  est répliqué sur les deux noeud grâce à l'excellent DRBD de LINBIT. Il y a un excellent howto pour configurer un disque drbd sur un cluste