<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oxeron Internet and Mobile Service Sarl &#187; Shell</title>
	<atom:link href="http://www.oxeron.com/category/shell/feed" rel="self" type="application/rss+xml" />
	<link>http://www.oxeron.com</link>
	<description>Journal d&#039;un freelance au Luxembourg</description>
	<lastBuildDate>Thu, 04 Aug 2011 07:50:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Faire un serveur de streaming pour iTunes sous Gentoo</title>
		<link>http://www.oxeron.com/2009/01/13/faire-un-serveur-de-streaming-pour-itunes-sous-gentoo</link>
		<comments>http://www.oxeron.com/2009/01/13/faire-un-serveur-de-streaming-pour-itunes-sous-gentoo#comments</comments>
		<pubDate>Tue, 13 Jan 2009 09:36:16 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Shell]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[iTunes]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/?p=324</guid>
		<description><![CDATA[Crédit photo: fluzo J&#8217;ai chez moi plusieurs macs qui se partagent ma librairie iTunes. Jusqu&#8217;à maintenant, je montais une partition de mon serveur de fichier sous Gentoo qui contenait mes fichiers musicaux via AFP Je viens de changer pour installer un serveur qui s&#8217;occupe de streamer vos fichiers. Votre librairie sera alors vue comme une [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="Esta noche pincho" href="http://www.flickr.com/photos/68165086@N00/222748897/" target="_blank"><img class="aligncenter" src="http://farm1.static.flickr.com/89/222748897_d8601a4766_m.jpg" border="0" alt="Esta noche pincho" /></a><small>Crédit photo: <a title="fluzo" href="http://www.flickr.com/photos/68165086@N00/222748897/" target="_blank">fluzo</a></small></p>
<p><small><a title="fluzo" href="http://www.flickr.com/photos/68165086@N00/222748897/" target="_blank"></a></small><br />
J&#8217;ai chez moi plusieurs macs qui se partagent ma librairie iTunes. Jusqu&#8217;à maintenant, je montais une partition de mon serveur de fichier sous Gentoo qui contenait mes fichiers musicaux via AFP</p>
<p>Je viens de changer pour installer un serveur qui s&#8217;occupe de streamer vos fichiers. Votre librairie sera alors vue comme une librairie partagée dans vos iTunes (ce qui veut dire pas de playlist et pas de synchronisation avec vos pods &#8230;)</p>
<p><code lang="bash"><br />
net-dns/avahi gdbm python howl-compat dbus mdnsresponder-compat<br />
media-sound/mt-daapd avahi vorbis<br />
</code></p>
<p>Dans le script de démarrage de mt-daapd, j&#8217;ai remplacé <strong>need mDNSResponder</strong> par <strong>need avahi-daemon</strong></p>
<p>Il suffit ensuite de copier le fichier de configuration standard et de le modifier:</p>
<p><code>cp /etc/mt-daapd.conf.example /etc/mt-daapd.conf</code></p>
<p>Puis /etc/init.d/avahi-daemon start et enfin /etc/init.d/mt-daapd start</p>
<p>Une interface de gestion est alors disponible à l&#8217;adresse http://ip_de_votre_serveur:3689/</p>
<p>Et voilà, c&#8217;est tout</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2009/01/13/faire-un-serveur-de-streaming-pour-itunes-sous-gentoo/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>De la virtualisation avec VirtualBox sous Gentoo</title>
		<link>http://www.oxeron.com/2008/12/29/de-la-virtualisation-avec-virtualbox-sous-gentoo</link>
		<comments>http://www.oxeron.com/2008/12/29/de-la-virtualisation-avec-virtualbox-sous-gentoo#comments</comments>
		<pubDate>Mon, 29 Dec 2008 20:30:04 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Serveurs Software]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[virtualisation]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/?p=302</guid>
		<description><![CDATA[Crédit photo: Vin0rz Disposant d&#8217;un vieux serveur P4 n&#8217;ayant pas les facultés de virtualisation, j&#8217;ai essayé VirtualBox de Sun pour déployer des machines virtuelles de test. Il existe un très bon howto à cet endroit. Je n&#8217;ai pas de serveur X installé sur cette machine, et je ne veux pas en installer. L&#8217;avantage de Virtualbox, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center"><a title="Xubuntu Feisty dektop in VirtualBox" href="http://www.flickr.com/photos/23854051@N00/416553083/" target="_blank"><img src="http://farm1.static.flickr.com/153/416553083_84ab86d17f_m.jpg" border="0" alt="Xubuntu Feisty dektop in VirtualBox" /></a><br />
<small>Crédit photo: <a title="Vin0rz" href="http://www.flickr.com/photos/23854051@N00/416553083/" target="_blank">Vin0rz</a></small></p>
<p>Disposant d&#8217;un vieux serveur P4 n&#8217;ayant pas les facultés de virtualisation, j&#8217;ai essayé VirtualBox de Sun pour déployer des machines virtuelles de test.</p>
<p>Il existe un très bon <a href="http://fr.gentoo-wiki.com/wiki/VirtualBox">howto à cet endroit</a>. Je n&#8217;ai pas de serveur X installé sur cette machine, et je ne veux pas en installer. L&#8217;avantage de Virtualbox, c&#8217;est qu&#8217;il permet de démarrer une machine virtuelle et de s&#8217;y connecter en Remote Desktop. Vous pouvez très bien mettre en place cette solution sur un serveur hébergé à Paris et faire tourner vous y connecter depuis chez vous (à voir niveau latence ce que ça vaut &#8230;)</p>
<p><code lang="bash"><br />
xen ~ #  emerge -av virtualbox-bin</code></p>
<p>These are the packages that would be merged, in order:</p>
<p>Calculating dependencies&#8230; done!<br />
[ebuild  N    ] x11-misc/util-macros-1.1.5  47 kB<br />
[ebuild  N    ] media-libs/libmng-1.0.10  USE=&nbsp;&raquo;-lcms&nbsp;&raquo; 1,068 kB<br />
[ebuild  N    ] media-libs/libsdl-1.2.13  USE=&nbsp;&raquo;-X -aalib -alsa -arts -custom-cflags -dga -directfb -esd -fbcon -ggi -libcaca -nas -noaudio -nojoystick -novideo -opengl -oss -pulseaudio -svga -xinerama -xv&nbsp;&raquo; 3,295 kB<br />
[ebuild  N    ] virtual/libstdc++-3.3  0 kB<br />
[ebuild  N    ] sys-apps/usermode-utilities-20040406-r1  59 kB<br />
[ebuild  N    ] net-misc/bridge-utils-1.4  32 kB<br />
[ebuild  N    ] app-emulation/virtualbox-modules-1.6.4  193 kB<br />
[ebuild  N    ] x11-proto/xproto-7.0.10  140 kB<br />
[ebuild  N    ] x11-proto/inputproto-1.4.2.1  47 kB<br />
[ebuild  N    ] x11-libs/xtrans-1.0.3  USE=&nbsp;&raquo;-debug&nbsp;&raquo; 101 kB<br />
[ebuild  N    ] x11-proto/kbproto-1.0.3  57 kB<br />
[ebuild  N    ] x11-proto/renderproto-0.9.2  40 kB<br />
[ebuild  N    ] x11-proto/xf86bigfontproto-1.1.2  37 kB<br />
[ebuild  N    ] x11-proto/bigreqsproto-1.0.2  36 kB<br />
[ebuild  N    ] x11-proto/xcmiscproto-1.1.2  36 kB<br />
[ebuild  N    ] x11-proto/fixesproto-4.0  38 kB<br />
[ebuild  N    ] x11-proto/xineramaproto-1.1.2  38 kB<br />
[ebuild  N    ] x11-proto/randrproto-1.2.1  54 kB<br />
[ebuild  N    ] x11-proto/xextproto-7.0.2  67 kB<br />
[ebuild  N    ] x11-libs/libICE-1.0.4  USE=&nbsp;&raquo;-debug -ipv6&#8243; 247 kB<br />
[ebuild  N    ] x11-libs/libXau-1.0.3  USE=&nbsp;&raquo;-debug&nbsp;&raquo; 225 kB<br />
[ebuild  N    ] x11-libs/libXdmcp-1.0.2  USE=&nbsp;&raquo;-debug&nbsp;&raquo; 216 kB<br />
[ebuild  N    ] x11-libs/libX11-1.1.4  USE=&nbsp;&raquo;-debug -ipv6 -xcb&nbsp;&raquo; 1,540 kB<br />
[ebuild  N    ] x11-libs/libSM-1.0.3  USE=&nbsp;&raquo;-debug -ipv6&#8243; 219 kB<br />
[ebuild  N    ] x11-libs/libXext-1.0.3  USE=&nbsp;&raquo;-debug&nbsp;&raquo; 256 kB<br />
[ebuild  N    ] x11-libs/libXrender-0.9.2  USE=&nbsp;&raquo;-debug&nbsp;&raquo; 241 kB<br />
[ebuild  N    ] x11-libs/libXfixes-4.0.3  USE=&nbsp;&raquo;-debug&nbsp;&raquo; 210 kB<br />
[ebuild  N    ] x11-libs/libXt-1.0.5  USE=&nbsp;&raquo;-debug&nbsp;&raquo; 489 kB<br />
[ebuild  N    ] x11-libs/libXft-2.1.12  USE=&nbsp;&raquo;-debug&nbsp;&raquo; 255 kB<br />
[ebuild  N    ] x11-libs/libXcursor-1.1.9  USE=&nbsp;&raquo;-debug&nbsp;&raquo; 230 kB<br />
[ebuild  N    ] x11-libs/libXrandr-1.2.1  USE=&nbsp;&raquo;-debug&nbsp;&raquo; 216 kB<br />
[ebuild  N    ] x11-libs/libXi-1.1.3  USE=&nbsp;&raquo;-debug&nbsp;&raquo; 243 kB<br />
[ebuild  N    ] x11-libs/libXinerama-1.0.2  USE=&nbsp;&raquo;-debug&nbsp;&raquo; 210 kB<br />
[ebuild  N    ] virtual/xft-7.0  0 kB<br />
[ebuild  N    ] x11-libs/qt-3.3.8-r4  USE=&nbsp;&raquo;mysql -cups -debug -doc -examples -firebird -gif -immqt -immqt-bc -ipv6 -nas -nis -odbc -opengl -postgres -sqlite -xinerama&nbsp;&raquo; 16,986 kB<br />
[ebuild  N F  ] app-emulation/virtualbox-bin-1.6.4  USE=&nbsp;&raquo;additions vboxwebsrv headless -sdk&nbsp;&raquo; 21,029 kB</p>
<p>Total: 36 packages (36 new), Size of downloads: 48,180 kB<br />
Fetch Restriction: 1 package (1 unsatisfied)</p>
<p>A la fin de la compilation, il nous est demandé de télécharger le binaire d&#8217;installation directement sur le site de VirtualBox:</p>
<p><code lang="bash"><br />
* Please download the package from:<br />
*<br />
* http://download.virtualbox.org/virtualbox/1.6.4/VirtualBox-1.6.4-Linux_x86.run<br />
*<br />
* and then put it in /usr/portage/distfiles<br />
* Fetch failed for 'app-emulation/virtualbox-bin-1.6.4'<br />
* GNU info directory index is up-to-date.<br />
* IMPORTANT: 4 config files in '/etc' need updating.<br />
* See the CONFIGURATION FILES section of the emerge<br />
* man page to learn how to update config files.<br />
xen ~ # cd /usr/local/src/<br />
xen src # wget http://download.virtualbox.org/virtualbox/1.6.4/VirtualBox-1.6.4-Linux_x86.run<br />
xen src # chmod +x VirtualBox-1.6.4-Linux_x86.run<br />
xen src # ./VirtualBox-1.6.4-Linux_x86.run<br />
Verifying archive integrity... All good.<br />
Uncompressing VirtualBox for Linux installation........<br />
VirtualBox Version 1.6.4 (Tue Jul 29 20:45:09 CEST 2008) installation<br />
Installing VirtualBox to /opt/VirtualBox-1.6.4<br />
Building the VirtualBox kernel module</code></p>
<p>VirtualBox has been installed successfully.</p>
<p>You will find useful information about using VirtualBox in the user manual<br />
/opt/VirtualBox-1.6.4/UserManual.pdf<br />
and in the user FAQ</p>
<p>http://www.virtualbox.org/wiki/User_FAQ</p>
<p>We hope that you enjoy using VirtualBox.</p>
<p>Il suffit ensuite <a href="http://www.howtoforge.com/vboxheadless-running-virtual-machines-with-virtualbox-2.0-on-a-headless-ubuntu-8.04-server">de suivre ce tutorial</a> pour créer une Machine virtuelle à partir d&#8217;une ISO d&#8217;ubuntu server par exemple (256M de mémoire et 10G d&#8217;espace disque)</p>
<p><code lang="bash"><br />
xen ~ # modprobe vboxdrv<br />
xen ~ # VBoxManage createvm -name "Ubuntu 8.10 Server" -register<br />
xen ~ # VBoxManage modifyvm "Ubuntu 8.10 Server" -memory "256MB" -acpi on -boot1 dvd -nic1 nat<br />
xen ~ # VBoxManage createvdi -filename "Ubuntu_8_10_Server.vdi" -size 10000 -register<br />
xen ~ # VBoxManage modifyvm "Ubuntu 8.10 Server" -hda "Ubuntu_8_10_Server.vdi"<br />
xen ~ # VBoxManage registerimage dvd /home/ubuntu-8.10-server-i386.iso<br />
xen ~ # VBoxManage modifyvm "Ubuntu 8.10 Server" -dvd /home/ubuntu-8.10-server-i386.iso<br />
xen ~ # VBoxHeadless -startvm "Ubuntu 8.10 Server"<br />
xen ~ # VirtualBox Headless Interface 1.6.4<br />
(C) 2008 Sun Microsystems, Inc.<br />
All rights reserved</code></p>
<p>Listening on port 3389</p>
<p>J&#8217;ai été confronté à un plantage de VBoxHeadless avec les sécurités PAX activées dans le kernel. Je les ai donc enlevées du noyau, il faut dans ce cas relancer le script d&#8217;installation de VirtualBox pour qu&#8217;il régénère un module pour le nouveau noyau.</p>
<p>Pour se connecter à la Machine Virtuelle, le RDC de Microsoft pour macosx ne semble pas fonctionner (les logs de connexions se trouvent dans /root/.VirtualBox/Machines/Ubuntu 8.10 Server/Logs si vous avez utilisé le compte root jusqu&#8217;à présent).</p>
<p><code lang="bash"><br />
00:02:46.807 VRDP: Logoff:  () build 0. User: [] Domain: [] Reason 0xFFFFFFFF.<br />
00:02:48.627 VRDP: New connection:<br />
00:02:48.685 VRDP: Flags 0x0000001b<br />
00:02:48.685 VRDP: Channel: [rdpdr] [1004]. Not supported.<br />
00:02:48.685 VRDP: Channel: [rdpsnd] [1005]. Accepted.<br />
00:02:48.685 VRDP: Channel: [cliprdr] [1006]. Accepted.<br />
00:02:48.756 VRDP: Failed to process incoming RDP packet: VERR_VRDP_PROTOCOL_ERROR!!!<br />
00:02:48.756 VRDP: The RDP packet content (read):<br />
</code></p>
<p>En utilisant le Remote Desktop de la version Windows, aucun problème. J&#8217;avoue ne pas avoir cherché beaucoup pour résoudre ce problème, peut-être <a href="http://www.virtualbox.org/ticket/932">ce message </a>vous y aidera.</p>
<p>D&#8217;après mes premiers tests, je trouve cette solution très rapide à la fois à mettre en place, et également durant son fonctionnement. Lors de la mise à jour du système client, le cpu hôte n&#8217;est utilisé qu&#8217;à 1%, la mémoire à 20-30%. Pas mal du tout, reste à créer une Machine Virtuelle sous Gentoo pour voir.</p>
<p>Et vous, c&#8217;est lequel votre préféré ? Xen ? VMWare ? VirtualBox ?</p>
<p>PS: oui ma machine VirtualBox s&#8217;appelle Xen, et alors ? <img src='http://www.oxeron.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Edit: pour que Ubuntu Server accepte de booter sous VirtualBox, il faut demander à ce dernier d&#8217;activer le support PAE:</p>
<p><code lang="bash"><br />
xen ~ # VBoxManage modifyvm "Ubuntu 8.04 Server" -pae on<br />
</code></p>
<p>Edit 2 : aussitôt dit, aussitôt fait, pour installer Gentoo 2008 comme système client, il suffit d&#8217;utiliser les mêmes lignes que précédemment en modifiant juste celle-ci:</p>
<p><code lang="bash"><br />
xen Logs # VBoxManage modifyvm "Gentoo 2008" -memory "256MB" -acpi on -boot1 dvd -nic1 nat -ioapic off<br />
</code></p>
<p>puis de démarrer une deuxième instance de VirtualBox sur un autre port:</p>
<p><code lang="bash"><br />
xen Logs #  VBoxHeadless -startvm "Gentoo 2008" -p 3390<br />
xen Logs # VirtualBox Headless Interface 1.6.4<br />
(C) 2008 Sun Microsystems, Inc.<br />
All rights reserved</code></p>
<p>Listening on port 3390</p>
<p>Il y a <a href="http://www.softerblue.com/?p=15">un très bon guide ici</a> pour notamment les options du kernel à choisir.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2008/12/29/de-la-virtualisation-avec-virtualbox-sous-gentoo/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bloquer les tentatives de connexion SSH avec fail2ban</title>
		<link>http://www.oxeron.com/2008/12/09/bloquer-les-tentatives-de-connexion-ssh-avec-fail2ban</link>
		<comments>http://www.oxeron.com/2008/12/09/bloquer-les-tentatives-de-connexion-ssh-avec-fail2ban#comments</comments>
		<pubDate>Tue, 09 Dec 2008 14:51:09 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Serveurs Software]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[invalid user]]></category>
		<category><![CDATA[iptables]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/?p=292</guid>
		<description><![CDATA[J&#8217;ai décidé d&#8217;installer ce matin sur tous mes serveurs et ceux de mes clients le script python fail2ban fourni par portage sur Gentoo (la dernière version stable du développeur est masquée il s&#8217;agit de la version net-analyzer/fail2ban-0.8.3) Ce script analyse vos fichiers de logs et ajoute des règles dans votre firewall applicatif iptables pour bloquer [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai décidé d&#8217;installer ce matin sur tous mes serveurs et ceux de mes clients le script python fail2ban fourni par portage sur Gentoo (la dernière version stable du développeur est masquée il s&#8217;agit de la version net-analyzer/fail2ban-0.8.3)</p>
<p>Ce script analyse vos fichiers de logs et ajoute des règles dans votre firewall applicatif iptables pour bloquer les tentatives d&#8217;accès par ssh, apache, les requêtes DNS trop nombreuses, etc&#8230;</p>
<p>Voici un exemple de pollution récurrente:<br />
<code>Dec  9 10:03:28 server sshd[27836]: Invalid user ishihara from 121.134.8.168<br />
Dec  9 10:03:30 server sshd[27842]: Invalid user hfujioka from 121.134.8.168<br />
Dec  9 10:03:33 server sshd[27848]: Invalid user minami from 121.134.8.168<br />
Dec  9 10:03:35 server sshd[27856]: Invalid user togashi from 121.134.8.168<br />
Dec  9 10:03:37 server sshd[27865]: Invalid user nshino from 121.134.8.168<br />
Dec  9 10:03:40 server sshd[27870]: Invalid user wataru from 121.134.8.168<br />
Dec  9 10:03:42 server sshd[27875]: Invalid user yhashi from 121.134.8.168<br />
Dec  9 10:03:44 server sshd[27883]: Invalid user gai from 121.134.8.168<br />
Dec  9 10:03:46 server sshd[27888]: Invalid user sudomine from 121.134.8.168<br />
Dec  9 10:03:49 server sshd[27893]: Invalid user tsutomu from 121.134.8.168<br />
Dec  9 10:03:51 server sshd[27898]: Invalid user naoto from 121.134.8.168<br />
Dec  9 10:03:53 server sshd[27903]: Invalid user shimizu from 121.134.8.168<br />
Dec  9 10:03:56 server sshd[27908]: Invalid user yokoyama from 121.134.8.168<br />
Dec  9 10:03:58 server sshd[27913]: Invalid user koki from 121.134.8.168<br />
Dec  9 10:04:00 server sshd[27918]: Invalid user masashi from 121.134.8.168<br />
Dec  9 10:04:02 server sshd[27923]: Invalid user tomonari from 121.134.8.168<br />
Dec  9 10:04:05 server sshd[27933]: Invalid user higashi from 121.134.8.168<br />
Dec  9 10:04:07 server sshd[27938]: Invalid user ryotaro from 121.134.8.168<br />
Dec  9 10:04:09 server sshd[27943]: Invalid user mashima from 121.134.8.168<br />
Dec  9 10:04:12 server sshd[27948]: Invalid user shuu from 121.134.8.168<br />
Dec  9 10:04:14 server sshd[27953]: Invalid user oono from 121.134.8.168<br />
Dec  9 10:04:16 server sshd[27958]: Invalid user oliver from 121.134.8.168<br />
Dec  9 10:04:18 server sshd[27963]: Invalid user toyoc from 121.134.8.168</code> </p>
<p>Il faut bien sur avoir au préalable installé iptables et le module dans le kernel qui va bien.</p>
<p>Après la traditionnelle phase de compilation du soft, il suffit de modifier les fichiers de configuration fournis qui par défaut ne font rien, ou du moins pas grand chose.</p>
<p>Commencez par whitelister votre(vos) ip(s) dans le fichier /etc/fail2ban/jail.conf histoire de ne passe retrouver bêtement coincé suite à une mauvaise configuration:</p>
<p><code>ignoreip = 127.0.0.1 xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy</code></p>
<p>Réglez ensuite les 3 paramètres qui permettent de définir qu&#8217;une tentative de connexion doit être détectée comme malveillante:<br />
<code># "bantime" is the number of seconds that a host is banned.<br />
bantime  = 6000<br />
# A host is banned if it has generated "maxretry" during the last "findtime"<br />
# seconds.<br />
findtime  = 600<br />
# "maxretry" is the number of failures before a host get banned.<br />
maxretry = 3<br />
</code></p>
<p>Puis vous pourrez utiliser les modules de détection déjà fournis, les modifier ou créer les vôtres. Par défaut sous Gentoo, les tentatives d&#8217;accès SSH sont loggés dans /var/log/messages, j&#8217;ai donc modifile le logpath correspondant:<br />
<code>[ssh-iptables]<br />
enabled  = true<br />
filter   = sshd<br />
action   = iptables[name=SSH, port=ssh, protocol=tcp]<br />
           sendmail-whois[name=SSH, dest=olivier@oxeron.com, sender=fail2ban-server@oxeron.com]<br />
logpath  = /var/log/messages<br />
maxretry = 3<br />
</code></p>
<p>Et voilà, en 2 heures, environ 50 ips bloquées sur l&#8217;ensemble de mes machines.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2008/12/09/bloquer-les-tentatives-de-connexion-ssh-avec-fail2ban/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un autre joli bug Gentoo</title>
		<link>http://www.oxeron.com/2008/11/25/un-autre-joli-bug-gentoo</link>
		<comments>http://www.oxeron.com/2008/11/25/un-autre-joli-bug-gentoo#comments</comments>
		<pubDate>Tue, 25 Nov 2008 14:43:12 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/?p=257</guid>
		<description><![CDATA[En mettant à jour votre serveur Gentoo récemment, vous avez peut-être rencontré l&#8217;un des ombreux cas de blocage généré par portage:  Calculating dependencies... done! [ebuild N ] sys-libs/e2fsprogs-libs-1.41.0 USE="nls" 476 kB [ebuild U ] sys-fs/e2fsprogs-1.41.0 [1.40.11] USE="nls -static" 4,161 kB [blocks B ] sys-libs/e2fsprogs-libs-1.41.0) [blocks B ] sys-libs/ss (is blocking sys-libs/e2fsprogs-libs-1.41.0) [blocks B ] sys-libs/com_err [...]]]></description>
			<content:encoded><![CDATA[<p>En mettant à jour votre serveur Gentoo récemment, vous avez peut-être rencontré l&#8217;un des ombreux cas de blocage généré par portage:</p>
<p><code lang="bash"><br />
 Calculating dependencies... done!<br />
[ebuild  N    ] sys-libs/e2fsprogs-libs-1.41.0  USE="nls" 476 kB<br />
[ebuild     U ] sys-fs/e2fsprogs-1.41.0 [1.40.11] USE="nls -static" 4,161 kB<br />
[blocks B     ]<br />
sys-libs/e2fsprogs-libs-1.41.0)<br />
[blocks B     ] sys-libs/ss (is blocking sys-libs/e2fsprogs-libs-1.41.0)<br />
[blocks B     ] sys-libs/com_err (is blocking sys-libs/e2fsprogs-libs-1.41.0)<br />
</code></p>
<p>Surtout ne vous lancez pas dans lé désinstallation de ss et com_err ou votre wget ne fontionnera plus (entre autres)</p>
<p>Voici la solution pour contourner ce problème:</p>
<p><code lang="bash"><br />
quickpkg com_err ss e2fsprogs &#038;&#038;<br />
emerge -uDNf world &#038;&#038;<br />
emerge -C com_err ss e2fsprogs &#038;&#038;<br />
emerge e2fsprogs &#038;&#038;<br />
emerge -uDN world &#038;&#038;<br />
revdep-rebuild #(si nécessaire)<br />
</code></p>
<p>La joie d&#8217;utiliser Gentoo &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2008/11/25/un-autre-joli-bug-gentoo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Réparer un raid hardware DEGRADED avec tw_cli</title>
		<link>http://www.oxeron.com/2008/11/15/reparer-un-raid-hardware-degraded-avec-tw_cli</link>
		<comments>http://www.oxeron.com/2008/11/15/reparer-un-raid-hardware-degraded-avec-tw_cli#comments</comments>
		<pubDate>Sat, 15 Nov 2008 15:20:55 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Serveurs Software]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/?p=238</guid>
		<description><![CDATA[Un ptit memo pour réutilisation future éventuelle server bin # ./tw_cli info c0 u0 Unit UnitType Status %RCmpl %V/I/M Port Stripe Size(GB) ------------------------------------------------------------------------ u0 RAID-1 DEGRADED - - - - 232.885 u0-0 DISK DEGRADED - - p0 - 232.885 u0-1 DISK OK - - p1 - 232.885 server bin # ./tw_cli maint remove c0 p0 [...]]]></description>
			<content:encoded><![CDATA[<p>Un ptit memo pour réutilisation future éventuelle <img src='http://www.oxeron.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><code lang="bash"><br />
server bin # ./tw_cli info c0 u0</p>
<p>Unit     UnitType  Status         %RCmpl  %V/I/M  Port  Stripe  Size(GB)<br />
------------------------------------------------------------------------<br />
u0       RAID-1    DEGRADED       -       -       -     -       232.885<br />
u0-0     DISK      DEGRADED       -       -       p0    -       232.885<br />
u0-1     DISK      OK             -       -       p1    -       232.885  </p>
<p>server bin # ./tw_cli maint remove c0 p0<br />
Removing port /c0/p0 ... Done.</p>
<p>server bin # ./tw_cli maint rescan<br />
Rescanning controller /c0 for units and drives ...Done.<br />
Found the following unit(s): [none].<br />
Found the following drive(s): [/c0/p0].</p>
<p>server bin # ./tw_cli info c0</p>
<p>Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy<br />
------------------------------------------------------------------------------<br />
u0    RAID-1    DEGRADED       -       -       -       232.885   ON     -      </p>
<p>Port   Status           Unit   Size        Blocks        Serial<br />
---------------------------------------------------------------<br />
p0     OK               -      232.88 GB   488397168     GEL231RB07BB9B<br />
p1     OK               u0     232.88 GB   488397168     GEL231RB05N20B   </p>
<p>server bin # ./tw_cli info c0 u0</p>
<p>Unit     UnitType  Status         %RCmpl  %V/I/M  Port  Stripe  Size(GB)<br />
------------------------------------------------------------------------<br />
u0       RAID-1    DEGRADED       -       -       -     -       232.885<br />
u0-0     DISK      DEGRADED       -       -       -     -       232.885<br />
u0-1     DISK      OK             -       -       p1    -       232.885 </p>
<p>server bin # ./tw_cli maint rebuild c0 u0 p0<br />
Sending rebuild start request to /c0/u0 on 1 disk(s) [0] ... Done.</p>
<p>server bin # ./tw_cli info c0 </p>
<p>Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy<br />
------------------------------------------------------------------------------<br />
u0    RAID-1    REBUILDING     0       -       -       232.885   ON     -      </p>
<p>Port   Status           Unit   Size        Blocks        Serial<br />
---------------------------------------------------------------<br />
p0     DEGRADED         u0     232.88 GB   488397168     GEL231RB07BB9B<br />
p1     OK               u0     232.88 GB   488397168     GEL231RB05N20B </p>
<p>server bin #  ./tw_cli info c0 u0</p>
<p>Unit     UnitType  Status         %RCmpl  %V/I/M  Port  Stripe  Size(GB)<br />
------------------------------------------------------------------------<br />
u0       RAID-1    REBUILDING     0       -       -     -       232.885<br />
u0-0     DISK      DEGRADED       -       -       p0    -       232.885<br />
u0-1     DISK      OK             -       -       p1    -       232.885 </p>
<p>server bin # ./tw_cli info c0 u0</p>
<p>Unit     UnitType  Status         %RCmpl  %V/I/M  Port  Stripe  Size(GB)<br />
------------------------------------------------------------------------<br />
u0       RAID-1    REBUILDING     6       -       -     -       232.885<br />
u0-0     DISK      DEGRADED       -       -       p0    -       232.885<br />
u0-1     DISK      OK             -       -       p1    -       232.885<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2008/11/15/reparer-un-raid-hardware-degraded-avec-tw_cli/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un script bash pour optimiser les tables mysql</title>
		<link>http://www.oxeron.com/2008/09/16/un-script-bash-pour-optimiser-les-tables-mysql</link>
		<comments>http://www.oxeron.com/2008/09/16/un-script-bash-pour-optimiser-les-tables-mysql#comments</comments>
		<pubDate>Tue, 16 Sep 2008 08:10:56 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/?p=160</guid>
		<description><![CDATA[Et hop voilà un petit script bien pratique pour voir l&#8217;état de fractionnement des tables de votre serveur mysql: #!/bin/bash # -l 5 : parameter to launch OPTIMIZE query while getopts 'D:d:u:p:s:l:' OPTION ; do case $OPTION in D) defaults_file="--defaults-file=$OPTARG";; d) DB=$OPTARG;; u) user="-u $OPTARG";; p) pwd="-p$OPTARG";; s) socket="--socket=$OPTARG";; l) level="$OPTARG" esac done mysql="mysql $defaults_file [...]]]></description>
			<content:encoded><![CDATA[<p>Et hop voilà un petit script bien pratique pour voir l&#8217;état de fractionnement des tables de votre serveur mysql:</p>
<p><code lang="bash"><br />
#!/bin/bash<br />
# -l 5 : parameter to launch OPTIMIZE query<br />
while getopts 'D:d:u:p:s:l:' OPTION ; do<br />
case $OPTION in<br />
D)   defaults_file="--defaults-file=$OPTARG";;<br />
d)   DB=$OPTARG;;<br />
u)   user="-u $OPTARG";;<br />
p)   pwd="-p$OPTARG";;<br />
s)   socket="--socket=$OPTARG";;<br />
l)   level="$OPTARG"<br />
esac<br />
done<br />
mysql="mysql $defaults_file $user $pwd $socket"<br />
if [ -z "$DB" ]<br />
then<br />
DB=`$mysql -N -e "show databases"`<br />
fi<br />
if [ -z "$level" ]<br />
then<br />
level="101"<br />
fi<br />
for db in $DB<br />
do<br />
for table in `$mysql -N $db -e "show tables"`<br />
do<br />
ENGINE=$($mysql $db -e "show table status like '$table'\G" |  awk '/Engine/ {print $2}')<br />
if [ "$ENGINE" == "MyISAM" ]<br />
then<br />
SIZE=$($mysql $db -e "show table status like '$table'\G" | awk '/Data_length/ {print $2}')<br />
FREE=$($mysql $db -e "show table status like '$table'\G"  | awk '/Data_free/ {print $2}')<br />
ROWS=$($mysql $db -e "show table status like '$table'\G" | awk '/Rows/ {print $2}')<br />
if [ $FREE -gt 0 ] &amp;&amp; [ $SIZE -gt 0 ]<br />
then<br />
FRAGMENTATION=$(printf '%i' $(echo "scale=0; $FREE/($SIZE/100)"|bc))<br />
echo "$FRAGMENTATION% $db.$table [Data_length=$SIZE Data_free=$FREE]"<br />
if [ $FRAGMENTATION  -ge $level ]<br />
then<br />
echo "OPTIMIZE REQUESTED"<br />
$mysql $db -e "use '$db';OPTIMIZE TABLE $table\G"<br />
fi<br />
fi<br />
fi<br />
done<br />
done<br />
</code></p>
<p>Le script a besoin d&#8217;informations de connexion à la base mysql, soit en ligne de commande, soit via un fichier .my.cnf</p>
<p>Il peut analyser une database particulière ou toutes celles du système si aucune n&#8217;est fournie en paramètre.</p>
<p>Il peut déclencher l&#8217;exécution de la commande OPTIMIZE TABLE si le taux de fragmentation de la table dépasse le seuil founi dans le paramètre -l</p>
<p>Par exemple: ./optimize_tables -u root -pxxxxxxx ou ./optimize_tables -l 10</p>
<p>PS: ce script ne fonctionne qu&#8217;avec des tables au format MyISAM, la fonction OPTIMIZE ne fonctionnant pas pour de l&#8217;InnoDB</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2008/09/16/un-script-bash-pour-optimiser-les-tables-mysql/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Out of range value adjusted for column error</title>
		<link>http://www.oxeron.com/2008/07/18/out-of-range-value-adjusted-for-column-error</link>
		<comments>http://www.oxeron.com/2008/07/18/out-of-range-value-adjusted-for-column-error#comments</comments>
		<pubDate>Fri, 18 Jul 2008 07:26:29 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/?p=121</guid>
		<description><![CDATA[En migrant un client d&#8217;un serveur mysql 3.23 en mysql 5.0.44, je suis tombé sur un problème de transfert d&#8217;un champ md5 de type bigint(20). Le serveur mysql5 tronquait la valeur insérée. J&#8217;ai du ajouté au début de mon dump sql la commande SET GLOBAL SQL_MODE=''; et tout rentre dans l&#8217;ordre.]]></description>
			<content:encoded><![CDATA[<p>En migrant un client d&#8217;un serveur mysql 3.23 en mysql 5.0.44, je suis tombé sur un problème de transfert d&#8217;un champ md5 de type bigint(20). Le serveur mysql5 tronquait la valeur insérée. J&#8217;ai du ajouté au début de mon dump sql la commande <code>SET GLOBAL SQL_MODE='';</code> et tout rentre dans l&#8217;ordre.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2008/07/18/out-of-range-value-adjusted-for-column-error/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Search and Replace dans Vim</title>
		<link>http://www.oxeron.com/2008/07/17/search-and-replace-dans-vim</link>
		<comments>http://www.oxeron.com/2008/07/17/search-and-replace-dans-vim#comments</comments>
		<pubDate>Thu, 17 Jul 2008 19:49:45 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/?p=120</guid>
		<description><![CDATA[Encore une ligne magique que j&#8217;oublie aussi vite que je la retrouve  :1,$s/find/replace/g]]></description>
			<content:encoded><![CDATA[<p>Encore une ligne magique que j&#8217;oublie aussi vite que je la retrouve <img src='http://www.oxeron.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p> <code>:1,$s/find/replace/g</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2008/07/17/search-and-replace-dans-vim/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Faille des serveurs DNS</title>
		<link>http://www.oxeron.com/2008/07/11/faille-des-serveurs-dns</link>
		<comments>http://www.oxeron.com/2008/07/11/faille-des-serveurs-dns#comments</comments>
		<pubDate>Fri, 11 Jul 2008 13:02:43 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/?p=118</guid>
		<description><![CDATA[Suite à l&#8217;annonce de la faille de sécurité touchant les serveurs DNS, j&#8217;ai été très surpris de voir que des collègues admins ne connaissaient pas d&#8217;alternative sérieuse à Bind et en particulier djbdns. Son développeur D.J. Bernstein à développé djbdns (et qmail) en ayant en tête la question de sécurité ; depuis des années, alors [...]]]></description>
			<content:encoded><![CDATA[<p>Suite à l&#8217;annonce de la faille de sécurité touchant les serveurs DNS, j&#8217;ai été très surpris de voir que des collègues admins ne connaissaient pas d&#8217;alternative sérieuse à Bind et en particulier djbdns.</p>
<p>Son développeur D.J. Bernstein à développé djbdns (et qmail) en ayant en tête la question de sécurité ; depuis des années, alors que Bind à été sujet à des failles de sécurités, djbdns, lui n&#8217;a eu aucun problème. Notez aussi que D.J. Bernstein offre 500$ à la première personne qui prouvera que la dernière version de djbdns contient une faille de sécurité, voir (US) :<br />
<a href="http://cr.yp.to/djbdns/guarantee.html" target="_blank">http://cr.yp.to/djbdns/guarantee.html</a></p>
<p>djbdns consomme bien moins de ressources (cpu/ram) que Bind. Notez aussi que vous pouvez faire des changements dans les zones dns sans avoir a redémarrer tinydns, celui-ci s&#8217;aperçoit automatiquement que data.cdb à été modifié et recharge donc l&#8217;ensemble des zones.</p>
<p>J&#8217;aime toujours les réflexions du genre: &laquo;&nbsp;Ouais mais ton truc là, c&#8217;est pas utilisé alors c&#8217;est normal qu&#8217;il y ait pas de faille&nbsp;&raquo; (Yves, si tu me lis <img src='http://www.oxeron.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) ça me donne une raison de plus d&#8217;utiliser ce logiciel <img src='http://www.oxeron.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2008/07/11/faille-des-serveurs-dns/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimiser un filesystem ext3</title>
		<link>http://www.oxeron.com/2008/07/09/optimiser-un-filesystem-ext3</link>
		<comments>http://www.oxeron.com/2008/07/09/optimiser-un-filesystem-ext3#comments</comments>
		<pubDate>Wed, 09 Jul 2008 12:14:32 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/?p=117</guid>
		<description><![CDATA[Voici quelques paramètres que l&#8217;on peut optimiser sur un filesystem ext3 livecd ~ # tune2fs -O has_journal -o journal_data_writeback /dev/md1 tune2fs 1.40.8 (13-Mar-2008) livecd ~ # tune2fs -O dir_index /dev/md1 tune2fs 1.40.8 (13-Mar-2008) livecd ~ # e2fsck -D -f /dev/md1 e2fsck 1.40.8 (13-Mar-2008) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure [...]]]></description>
			<content:encoded><![CDATA[<p>Voici quelques paramètres que l&#8217;on peut optimiser sur un filesystem ext3</p>
<p><code>livecd ~ # tune2fs -O has_journal -o journal_data_writeback /dev/md1<br />
tune2fs 1.40.8 (13-Mar-2008)</p>
<p>livecd ~ # tune2fs -O dir_index /dev/md1<br />
tune2fs 1.40.8 (13-Mar-2008)</p>
<p>livecd ~ # e2fsck -D -f /dev/md1<br />
e2fsck 1.40.8 (13-Mar-2008)<br />
Pass 1: Checking inodes, blocks, and sizes<br />
Pass 2: Checking directory structure<br />
Pass 3: Checking directory connectivity<br />
Pass 3A: Optimizing directories<br />
Pass 4: Checking reference counts<br />
Pass 5: Checking group summary information</p>
<p>/dev/md1: ***** FILE SYSTEM WAS MODIFIED *****<br />
/dev/md1: 11/12214272 files (9.1% non-contiguous), 814557/48833536 blocks</p>
<p>livecd ~ # tune2fs -l /dev/md1<br />
tune2fs 1.40.8 (13-Mar-2008)<br />
Filesystem volume name:   <none><br />
Last mounted on:          <not available><br />
Filesystem UUID:          92eff78c-4a42-418b-9c5b-1f945c6369af<br />
Filesystem magic number:  0xEF53<br />
Filesystem revision #:    1 (dynamic)<br />
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file<br />
Filesystem flags:         signed_directory_hash<br />
Default mount options:    journal_data_writeback<br />
Filesystem state:         clean<br />
Errors behavior:          Continue<br />
Filesystem OS type:       Linux<br />
Inode count:              12214272<br />
Block count:              48833536<br />
Reserved block count:     2441676<br />
Free blocks:              48018979<br />
Free inodes:              12214261<br />
First block:              0<br />
Block size:               4096<br />
Fragment size:            4096<br />
Reserved GDT blocks:      1012<br />
Blocks per group:         32768<br />
Fragments per group:      32768<br />
Inodes per group:         8192<br />
Inode blocks per group:   512<br />
Filesystem created:       Wed Jul  9 14:03:13 2008<br />
Last mount time:          n/a<br />
Last write time:          Wed Jul  9 14:06:14 2008<br />
Mount count:              0<br />
Maximum mount count:      33<br />
Last checked:             Wed Jul  9 14:06:14 2008<br />
Check interval:           15552000 (6 months)<br />
Next check after:         Mon Jan  5 14:06:14 2009<br />
Reserved blocks uid:      0 (user root)<br />
Reserved blocks gid:      0 (group root)<br />
First inode:              11<br />
Inode size:		  256<br />
Journal inode:            8<br />
Default directory hash:   tea<br />
Directory Hash Seed:      66d49bfa-58ee-4bcb-81e0-adf8003418ec<br />
Journal backup:           inode blocks<br />
</code></p>
<p>Ainsi que retirer dans /etc/fstab les access-time pour les fichiers et les répertoires</p>
<p>Références:<br />
- <a href="http://en.opensuse.org/Speeding_up_Ext3" target="_blank">http://en.opensuse.org/Speeding_up_Ext3</a><br />
- <a href="http://www.ubuntugeek.com/how-to-increase-ext3-and-reiserfs-filesystems-performance.html" target="_blank">http://www.ubuntugeek.com/how-to-increase-ext3-and-reiserfs-filesystems-performance.html</a></p>
<blockquote></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2008/07/09/optimiser-un-filesystem-ext3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sfdisk, pratique pour le raid logiciel</title>
		<link>http://www.oxeron.com/2008/07/09/sfdisk-pratique-pour-le-raid-logiciel</link>
		<comments>http://www.oxeron.com/2008/07/09/sfdisk-pratique-pour-le-raid-logiciel#comments</comments>
		<pubDate>Wed, 09 Jul 2008 07:53:02 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/?p=116</guid>
		<description><![CDATA[Et voilà la séquence du jour qui me sert à chaque fois que je crée un raid soft pour copier le partitionnement d&#8217;un disque sur tous les autres: sfdisk -d /dev/sda &#124; sfdisk /dev/sdb]]></description>
			<content:encoded><![CDATA[<p>Et voilà la séquence du jour qui me sert à chaque fois que je crée un raid soft pour copier le partitionnement d&#8217;un disque sur tous les autres:</p>
<p><code>sfdisk -d /dev/sda | sfdisk /dev/sdb</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2008/07/09/sfdisk-pratique-pour-le-raid-logiciel/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Copier coller dans VI sans tabulations parasites</title>
		<link>http://www.oxeron.com/2008/04/18/copier-coller-dans-vi-sans-tabulations-parasites</link>
		<comments>http://www.oxeron.com/2008/04/18/copier-coller-dans-vi-sans-tabulations-parasites#comments</comments>
		<pubDate>Fri, 18 Apr 2008 09:39:11 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/2008/04/18/copier-coller-dans-vi-sans-tabulations-parasites</guid>
		<description><![CDATA[Lors d&#8217;un copy/paste dans vi, des tabulations parasites augmentant avec le nombre de lignes à coller apparaissent en début de chacune d&#8217;entre elles. Pour éviter ce phénomène, il suffit d&#8217;utiliser la commande magique :set paste avant de coller le contenu, puis pour revenir à l&#8217;indentation normale :set nopaste]]></description>
			<content:encoded><![CDATA[<p>Lors d&#8217;un copy/paste dans vi, des tabulations parasites augmentant avec le nombre de lignes à coller apparaissent en début de chacune d&#8217;entre elles. Pour éviter ce phénomène, il suffit d&#8217;utiliser la commande magique  :set paste avant de coller le contenu, puis pour revenir à l&#8217;indentation normale :set nopaste</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2008/04/18/copier-coller-dans-vi-sans-tabulations-parasites/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Compter le nombre de fichiers par extension dans un répertoire</title>
		<link>http://www.oxeron.com/2008/02/16/compter-le-nombre-de-fichiers-par-extension-dans-un-repertoire</link>
		<comments>http://www.oxeron.com/2008/02/16/compter-le-nombre-de-fichiers-par-extension-dans-un-repertoire#comments</comments>
		<pubDate>Sat, 16 Feb 2008 18:23:00 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/2008/02/16/compter-le-nombre-de-fichiers-par-extension-dans-un-repertoire/</guid>
		<description><![CDATA[find . -name &#34;*.*&#34;&#124;sed 's/.*\.//g'&#124;sort&#124;uniq -c&#124;sort -nr&#124;gawk 'OFS=&#34;\t&#34; {print $1,$2}']]></description>
			<content:encoded><![CDATA[<pre class="brush: plain;">find . -name &quot;*.*&quot;|sed 's/.*\.//g'|sort|uniq -c|sort -nr|gawk 'OFS=&quot;\t&quot; {print $1,$2}' </pre>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2008/02/16/compter-le-nombre-de-fichiers-par-extension-dans-un-repertoire/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Search and replace en ligne de commande</title>
		<link>http://www.oxeron.com/2008/01/15/search-and-replace-en-ligne-de-commande</link>
		<comments>http://www.oxeron.com/2008/01/15/search-and-replace-en-ligne-de-commande#comments</comments>
		<pubDate>Tue, 15 Jan 2008 17:29:43 +0000</pubDate>
		<dc:creator>Olivier PIERRE</dc:creator>
				<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.oxeron.com/2008/01/15/search-and-replace-en-ligne-de-commande/</guid>
		<description><![CDATA[Pour faire un search and replace en ligne de commande sur tous les fichiers .txt d&#8217;un répertoire : perl -pi -e 's/find/replace/g' *.txt La même chose pour des fichiers contenus dans une arborescence : find . -name '*.txt' &#124;xargs perl -pi -e 's/find/replace/g']]></description>
			<content:encoded><![CDATA[<p>Pour faire un search and replace en ligne de commande sur tous les fichiers .txt d&#8217;un répertoire :</p>
<p><code lang="perl">perl -pi -e 's/find/replace/g' *.txt</code></p>
<p>La même chose pour des fichiers contenus dans une arborescence :</p>
<p><code lang="bash">find . -name '*.txt' |xargs perl -pi -e 's/find/replace/g'</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oxeron.com/2008/01/15/search-and-replace-en-ligne-de-commande/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

