    
<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://www.collilieux.info/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel>
        <title>[oui qui]</title>
        <description></description>
        <link>http://www.collilieux.info/</link>
        <lastBuildDate>Sun, 05 Feb 2012 04:47:11 +0100</lastBuildDate>
        <generator>FeedCreator 1.7.2-ppt DokuWiki</generator>
        <image>
            <url>http://www.collilieux.info/lib/tpl/monobook/images/favicon.ico</url>
            <title>[oui qui]</title>
            <link>http://www.collilieux.info/</link>
        </image>
        <item>
            <title>doc:apache2 - vhost HTTP + changement de licence</title>
            <link>http://www.collilieux.info/doc/apache2</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot;&gt;&lt;a name=&quot;apache2&quot; id=&quot;apache2&quot;&gt;apache2&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Quelques infos sur la mise en place d&amp;#039;un serveur &lt;a href=&quot;http://www.google.com/search?q=apache2&amp;amp;btnI=lucky&quot; class=&quot;interwiki iw_go&quot; title=&quot;http://www.google.com/search?q=apache2&amp;amp;btnI=lucky&quot;&gt;apache2&lt;/a&gt; sur une DEBIAN « &lt;a href=&quot;http://www.debian.org/releases/squeeze/&quot; class=&quot;urlextern&quot; title=&quot;http://www.debian.org/releases/squeeze/&quot;  rel=&quot;nofollow&quot;&gt;Squeeze&lt;/a&gt; ».
&lt;/p&gt;

&lt;p&gt;
Si cette page vous a été utile : &lt;form action=&quot;https://www.paypal.com/cgi-bin/webscr&quot; method=&quot;post&quot;&gt;&lt;input type=&quot;hidden&quot; name=&quot;cmd&quot; value=&quot;_s-xclick&quot;&gt;&lt;input type=&quot;hidden&quot; name=&quot;encrypted&quot; value=&quot;-----BEGIN PKCS7-----MIIHTwYJKoZIhvcNAQcEoIIHQDCCBzwCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYCvhoaJQrNx+f7mkkzSxcFNnocz9645GVvp7NFqUz9J24rrmybj+F8PHqKZXZLMC6B6Jr5CPK7qZbYIaXp3dBykj78A+GCesk4enCcthdCRVH0r+4+4C+1Ys3p37l6FOjNU9T00dKEVFzPKkO0HNV+3HvPYXBO2rmOvzhyYe/PX8DELMAkGBSsOAwIaBQAwgcwGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIO1S4e+PA7oaAgaiKL7qAiUyu/mHhJMRBoVld3uw9yRaeAsPJoO6gg5mAtagsTR39MrqHKoTC4ZJ3Ft3EGzUL3URqFT/r70IuCX6rb9ZBFJ/k4CnVnc87Dz1nggP8buotQIIjt1g5p/xCUPmg1zN3VvgKZy+hVU1izIm0P1+awG9Kmjla/u8Wlh3qW7YLkjzf5aaWphP47d14lp9gRBSZayo3su8uKPz0VGY1D2GXdWKhwtmgggOHMIIDgzCCAuygAwIBAgIBADANBgkqhkiG9w0BAQUFADCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wHhcNMDQwMjEzMTAxMzE1WhcNMzUwMjEzMTAxMzE1WjCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMFHTt38RMxLXJyO2SmS+Ndl72T7oKJ4u4uw+6awntALWh03PewmIJuzbALScsTS4sZoS1fKciBGoh11gIfHzylvkdNe/hJl66/RGqrj5rFb08sAABNTzDTiqqNpJeBsYs/c2aiGozptX2RlnBktH+SUNpAajW724Nv2Wvhif6sFAgMBAAGjge4wgeswHQYDVR0OBBYEFJaffLvGbxe9WT9S1wob7BDWZJRrMIG7BgNVHSMEgbMwgbCAFJaffLvGbxe9WT9S1wob7BDWZJRroYGUpIGRMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAIFfOlaagFrl71+jq6OKidbWFSE+Q4FqROvdgIONth+8kSK//Y/4ihuE4Ymvzn5ceE3S/iBSQQMjyvb+s2TWbQYDwcp129OPIbD9epdr4tJOUNiSojw7BHwYRiPh58S1xGlFgHFXwrEBb3dgNbMUa+u4qectsMAXpVHnD9wIyfmHMYIBmjCCAZYCAQEwgZQwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tAgEAMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMTExMDgyMDQ4MDJaMCMGCSqGSIb3DQEJBDEWBBRpxYrqxRH4xAiq6JMYZ41MTKyZ0TANBgkqhkiG9w0BAQEFAASBgKbWizUCy3vItgoS4RnAr/85P53BKVcA5SX9V7WyaRweViRqJKXtes+yPYsK3vSaFALFi+EPsPLMf0Fd+3u3DLbk4/I/NWHEUC5d8Rd5bi1lKPpvK6dXBhVQI5hX5fp7e1uJGW/BCKUoEupOYCwxkS3kHkpm1UA2Dk2sqdr/7zp8-----END PKCS7-----&quot;&gt;&lt;input type=&quot;image&quot; src=&quot;http://static.collilieux.net/don.png&quot; border=&quot;0&quot; name=&quot;submit&quot; alt=&quot;Don via Paypal&quot;&gt;&lt;/form&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT1 SECTION &quot;apache2&quot; [1-210] --&gt;
&lt;h2 class=&quot;sectionedit2&quot;&gt;&lt;a name=&quot;installation&quot; id=&quot;installation&quot;&gt;installation&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;code&gt;aptitude&lt;/code&gt; installera apache en quelques secondes et vous aurez ainsi un serveur web qui répondra en &lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt; sur le port 80.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ sudo aptitude install apache2
Lecture des listes de paquets... Fait
Construction de l&amp;#039;arbre des dépendances       
Lecture des informations d&amp;#039;état... Fait
Lecture de l&amp;#039;information d&amp;#039;état étendu      
Initialisation de l&amp;#039;état des paquets... Fait
Lecture des descriptions de tâches... Fait  
Les NOUVEAUX paquets suivants vont être installés : 
  apache2 apache2-mpm-worker{a} apache2-utils{a} apache2.2-common{a} 
0 paquets mis à jour, 4 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de télécharger 241ko/1211ko d&amp;#039;archives. Après dépaquetage, 4452ko seront utilisés.
Voulez-vous continuer ? [Y/n/?] &lt;/pre&gt;

&lt;p&gt;
Pour vérifier qu&amp;#039;apache2 fonctionne, lancer votre navigateur et dans la barre d&amp;#039;adresse, entrez votre adresse IP. Normalement, vous devriez voir une page web qui indique quelque chose comme « It works ! »
&lt;/p&gt;

&lt;p&gt;
Par défaut, apache2 fournit par DEBIAN sert les pages du répertoire &lt;code&gt;/var/www&lt;/code&gt; qui contient le fichier &lt;code&gt;index.html&lt;/code&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ cat /var/www/index.html 
&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;It works!&amp;lt;/h1&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Les fichiers de configuration sont stockés dans le répertoire &lt;code&gt;/etc/apache2&lt;/code&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT2 SECTION &quot;installation&quot; [211-1532] --&gt;
&lt;h2 class=&quot;sectionedit3&quot;&gt;&lt;a name=&quot;configuration_securite&quot; id=&quot;configuration_securite&quot;&gt;configuration sécurité&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Depuis Lenny DEBIAN fournit un fichier de configuration pour améliorer la sécurité du serveur. Voilà le contenu de ce fichier expurgé de quelques commentaires et quelques lignes vides.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ egrep -B 1 -v &amp;#039;^#|^$&amp;#039; /etc/apache2/conf.d/security 
#ServerTokens Minimal
ServerTokens Full
--
#ServerSignature Off
ServerSignature On
--
#TraceEnable Off
TraceEnable On&lt;/pre&gt;

&lt;p&gt;
Par défaut, le fichier n&amp;#039;apporte rien. Il faudrait au minimum inverser les lignes commentées et celles décommentées. Plus de détails ci-après.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT3 SECTION &quot;configuration sécurité&quot; [1533-2099] --&gt;
&lt;h3 class=&quot;sectionedit4&quot;&gt;&lt;a name=&quot;servertokens&quot; id=&quot;servertokens&quot;&gt;ServerTokens&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
La directive &lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/core.html#servertokens&quot; class=&quot;urlextern&quot; title=&quot;http://httpd.apache.org/docs/2.2/mod/core.html#servertokens&quot;  rel=&quot;nofollow&quot;&gt;ServerTokens&lt;/a&gt; contrôle la chaîne de caractères retournée dans le champs &lt;code&gt;Server&lt;/code&gt; de l&amp;#039;entête &lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt;. En spécifiant &lt;code&gt;Full&lt;/code&gt;, apache donne son nom, sa version et également le système d&amp;#039;exploitation sur lequel il est installé et les modules ajoutés.
&lt;/p&gt;

&lt;p&gt;
Il est possible de voir ce que retourne un serveur avec &lt;code&gt;wget&lt;/code&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ wget -S http://localhost                   
--2009-05-31 22:54:04--  http://localhost/
Résolution de localhost... 127.0.0.1, ::1
Connexion vers localhost|127.0.0.1|:80...connecté.
requête HTTP transmise, en attente de la réponse...
  HTTP/1.1 200 OK
  Date: Sun, 31 May 2009 20:54:04 GMT
  Server: Apache/2.2.9 (Debian)
  Last-Modified: Sun, 31 May 2009 20:12:05 GMT
  ETag: &amp;quot;120e2e-2d-46b3aec646f28&amp;quot;
  Accept-Ranges: bytes
  Content-Length: 45
  Vary: Accept-Encoding
  Keep-Alive: timeout=15, max=100
  Connection: Keep-Alive
  Content-Type: text/html
Longueur: 45 [text/html]&lt;/pre&gt;

&lt;p&gt;
Voilà ce qu&amp;#039;on obtient avec un serveur apache2 installé dans sa configuration par défaut sur DEBIAN « Lenny ». Si on installe des modules complémentaires, apache les indique. Exemple en activant plusieurs modules :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny2 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_ruby/1.2.6 Ruby/1.8.7(2008-08-11) mod_ssl/2.2.9 OpenSSL/0.9.8g mod_perl/2.0.4 Perl/v5.10.0&lt;/pre&gt;

&lt;p&gt;
Si un jour le serveur est sujet à une faille de sécurité, le vilain pirate aura de nombreuses informations sur la version de chacun des modules. Pour rendre le serveur moins éloquant, on pourrait choisir la valeur &lt;code&gt;Minimal&lt;/code&gt; mais ce n&amp;#039;est pas la moins verbeuse, apache indiquera encore sa version complète. Pour obtenir le minimum, il faudra choisir la valeur &lt;code&gt;Prod&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Avec cette valeur, le champ &lt;code&gt;Server&lt;/code&gt; contiendra maintenant :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Server: Apache&lt;/pre&gt;

&lt;p&gt;
On serait tenter de donner de fausses informations en remplaçant &lt;code&gt;Apache&lt;/code&gt; par tout autre chose mais ce n&amp;#039;est pas possible par configuration, il faudra recompiler le serveur ou installer &lt;a href=&quot;http://www.collilieux.info/doc/mod_security&quot; class=&quot;wikilink2&quot; title=&quot;doc:mod_security&quot; rel=&quot;nofollow&quot;&gt;mod_security&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Le but ici est de donner le moins d&amp;#039;information possible à un attaquant éventuel. Le jour où une faille dite « 0 day » touche apache, il est préférable de ne pas être identifié trop vite comme une cible de choix. Ça laisse un peu de temps pour appliquer les mises à jour de sécurité.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT4 SECTION &quot;ServerTokens&quot; [2100-4534] --&gt;
&lt;h3 class=&quot;sectionedit5&quot;&gt;&lt;a name=&quot;serversignature&quot; id=&quot;serversignature&quot;&gt;ServerSignature&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
La directive &lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/core.html#serversignature&quot; class=&quot;urlextern&quot; title=&quot;http://httpd.apache.org/docs/2.2/mod/core.html#serversignature&quot;  rel=&quot;nofollow&quot;&gt;ServerSignature&lt;/a&gt;. Si la valeur est &lt;code&gt;on&lt;/code&gt; les pages d&amp;#039;erreur affichées par apache contiendront la signature définie dans le paragraphe précédent. En positonnant &lt;code&gt;ServerTokens Prod&lt;/code&gt;, seule la ligne suivante sera affichée en bas de chaque page d&amp;#039;erreur.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Apache Server at localhost Port 80&lt;/pre&gt;

&lt;p&gt;
Pour supprimer complétement cette ligne : &lt;code&gt;ServerSignature Off&lt;/code&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT5 SECTION &quot;ServerSignature&quot; [4535-5020] --&gt;
&lt;h3 class=&quot;sectionedit6&quot;&gt;&lt;a name=&quot;trace_et_track&quot; id=&quot;trace_et_track&quot;&gt;TRACE et TRACK&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
TRACE et TRACK sont deux types de requête &lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt; comme POST ou GET. Le principe est d&amp;#039;envoyer au serveur des données et celui-ci les renvoie. Ces requêtes sont inutiles sur un serveur opérationnel.
&lt;/p&gt;

&lt;p&gt;
La directive &lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/core.html#traceenable&quot; class=&quot;urlextern&quot; title=&quot;http://httpd.apache.org/docs/2.2/mod/core.html#traceenable&quot;  rel=&quot;nofollow&quot;&gt;TraceEnable&lt;/a&gt; permet d&amp;#039;activer ou désactiver la fonctionnalité TRACE qui devrait être réservée au déverminage. 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;TraceEnable Off&lt;/pre&gt;

&lt;p&gt;
Par contre, TRACK, qui est une implémentation de TRACE, reste utilisable. Pour désactiver ce type de requête, il faudra utiliser un « rewrite ».
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]&lt;/pre&gt;

&lt;p&gt;
Ces 3 lignes active le moteur de ré-écriture de apache. La deuxième ligne précise que la règle ne s&amp;#039;applique aux requêtes TRACE ou TRACK. Ce type de requête par à la poubelle.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT6 SECTION &quot;TRACE et TRACK&quot; [5021-5907] --&gt;
&lt;h3 class=&quot;sectionedit7&quot;&gt;&lt;a name=&quot;bilan_de_la_configuration_apache&quot; id=&quot;bilan_de_la_configuration_apache&quot;&gt;bilan de la configuration apache&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Le fichier &lt;code&gt;/etc/apache2/conf.d/security&lt;/code&gt; final ressemble à 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ cat /etc/apache2/conf.d/security
ServerTokens Prod
ServerSignature Off
TraceEnable Off
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT7 SECTION &quot;bilan de la configuration apache&quot; [5908-6204] --&gt;
&lt;h3 class=&quot;sectionedit8&quot;&gt;&lt;a name=&quot;php&quot; id=&quot;php&quot;&gt;php&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Pour rendre &lt;acronym title=&quot;Hypertext Preprocessor&quot;&gt;PHP&lt;/acronym&gt; moins bavard, il faut positionner la directive &lt;code&gt;expose_php = Off&lt;/code&gt; dans le fichier &lt;code&gt;/etc/php5/apache2/php.ini&lt;/code&gt;. Par défaut sous DEBIAN, la valeur est à &lt;code&gt;On&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Avant la modification, voici la réponse à un &lt;code&gt;wget -S&lt;/code&gt; : 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  HTTP/1.1 200 OK
  Date: Thu, 09 Jul 2009 20:45:54 GMT
  Server: Apache
  X-Powered-By: PHP/5.2.6-1+lenny3&lt;/pre&gt;

&lt;p&gt;
Après la modification :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  HTTP/1.1 200 OK
  Date: Thu, 09 Jul 2009 20:51:26 GMT
  Server: Apache&lt;/pre&gt;

&lt;p&gt;
Le champ &lt;code&gt;X-Powered-By&lt;/code&gt;, l&amp;#039;entête &lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt; ne donne donc plus d&amp;#039;information sur &lt;acronym title=&quot;Hypertext Preprocessor&quot;&gt;PHP&lt;/acronym&gt; ni même sur sa présence.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT8 SECTION &quot;php&quot; [6205-6812] --&gt;
&lt;h2 class=&quot;sectionedit9&quot;&gt;&lt;a name=&quot;configuration_ssl&quot; id=&quot;configuration_ssl&quot;&gt;configuration SSL&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Pour utiliser HTTPS, il faut d&amp;#039;abord charger le module &lt;code&gt;ssl&lt;/code&gt; via la commande &lt;code&gt;a2enmod&lt;/code&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ sudo a2enmod ssl
$ sudo apache2ctl restart&lt;/pre&gt;

&lt;p&gt;
Lors de l&amp;#039;installation, DEBIAN génère un certificat auto-signé. Il permettra d&amp;#039;authentifier le serveur et de chiffrer la connexion mais le navigateur alertera l&amp;#039;utilisateur car il ne connaît pas l&amp;#039;autorité qui a signé le certificat.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT9 SECTION &quot;configuration SSL&quot; [6813-7226] --&gt;
&lt;h3 class=&quot;sectionedit10&quot;&gt;&lt;a name=&quot;cle_et_certificat_serveur&quot; id=&quot;cle_et_certificat_serveur&quot;&gt;clé et certificat serveur&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Pour utiliser la clé et le certificat générés, par exemple, avec la doc &lt;a href=&quot;http://www.collilieux.info/doc/xca&quot; class=&quot;wikilink1&quot; title=&quot;doc:xca&quot;&gt;xca&lt;/a&gt;, il est nécessaire de modifier deux lignes de configuration dans le fichier &lt;code&gt;/etc/apache2/site-available/default-ssl&lt;/code&gt;. Dans les lignes :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SSLCertificateFile /etc/ssl/certs/moncertificat.pem
SSLCertificateKeyFile /etc/ssl/private/macle.key&lt;/pre&gt;

&lt;p&gt;
Ces deux lignes désigne l&amp;#039;emplacement du certificat et de la clef privée du serveur, tous deux au format PEM.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT10 SECTION &quot;clé et certificat serveur&quot; [7227-7708] --&gt;
&lt;h3 class=&quot;sectionedit11&quot;&gt;&lt;a name=&quot;authentification_client&quot; id=&quot;authentification_client&quot;&gt;authentification client&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
La configuration ci-dessous a été extraite du &lt;a href=&quot;http://httpd.apache.org/docs/2.3/fr/ssl/ssl_howto.html&quot; class=&quot;urlextern&quot; title=&quot;http://httpd.apache.org/docs/2.3/fr/ssl/ssl_howto.html&quot;  rel=&quot;nofollow&quot;&gt;SSL howto apache&lt;/a&gt; (en français et sous licence Apache License Version 2.0).
&lt;/p&gt;

&lt;p&gt;
Le but est d&amp;#039;authentifier les clients qui disposent d&amp;#039;un certificat &lt;acronym title=&quot;Secure Sockets Layer&quot;&gt;SSL&lt;/acronym&gt; par ce mécanisme. Les autres seront authentifiés via une &lt;a href=&quot;http://httpd.apache.org/docs/2.3/fr/mod/mod_auth_basic.html&quot; class=&quot;urlextern&quot; title=&quot;http://httpd.apache.org/docs/2.3/fr/mod/mod_auth_basic.html&quot;  rel=&quot;nofollow&quot;&gt;authentification basique&lt;/a&gt; simple (&lt;img src=&quot;http://www.collilieux.info/lib/images/smileys/icon_exclaim.gif&quot; class=&quot;middle&quot; alt=&quot;:!:&quot; /&gt; en &lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt; (sans « s »), le mot de passe de l&amp;#039;authentification basique passe en clair sur le réseau).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;autorite_de_certification&quot; id=&quot;autorite_de_certification&quot;&gt;autorité de certification&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Pour que le serveur puisse vérifier les certificats présentés par les clients, il doit pouvoir accéder au certificat de l&amp;#039;autoritié de certification. Pour cela, ajouter la directive &lt;code&gt;SSLCACertificateFile&lt;/code&gt; au fichier &lt;code&gt;/etc/apache2/site-available/default-ssl&lt;/code&gt;. Apache ne reconnait que les certificats au format PEM.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SSLCACertificateFile  /etc/ssl/certs/MaCa.pem&lt;/pre&gt;

&lt;p&gt;
La directive est présente mais commentée dans le fichier fournit par DEBIAN. Il est possible de charger plusieurs certificats de diverses autorités de certification en utilisant la directive &lt;code&gt;SSLCACertificatePath&lt;/code&gt; qui pointera vers un répertoire qui contiendra les certificats (par défaut, &lt;code&gt;/etc/ssl/certs/&lt;/code&gt; contient plus de 200 fichiers, il est préférable de choisir un autre répertoire pour ne les charger tous).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;definition_de_l_authentification&quot; id=&quot;definition_de_l_authentification&quot;&gt;définition de l&amp;#039;authentification&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Dans cet exemple, l&amp;#039;accès au répertoire &lt;code&gt;/usr/lib/cgi-bin&lt;/code&gt; est protégé par une authentification. 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  $ cat /etc/apache2/conf.d/cgi 
  &amp;lt;Directory /usr/lib/cgi-bin/&amp;gt;

  # source http://httpd.apache.org/docs/2.3/fr/ssl/ssl_howto.html
  #   Si HTTPS est utilisé, on s&amp;#039;assure que le niveau de chiffrement est fort.
  #   Autorise en plus les certificats clients comme une alternative à
  #   l&amp;#039;authentification basique.

  SSLVerifyClient      optional
  SSLVerifyDepth       1
  SSLOptions           +FakeBasicAuth +StrictRequire

  AuthType Basic
  AuthName &amp;quot;Zone privée&amp;quot;
  AuthBasicProvider   file
  AuthUserFile 				/etc/apache2/htpasswd
  Require 					  valid-user
  &amp;lt;/Directory&amp;gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;SSLVerifyClient&lt;/code&gt; : &lt;code&gt;optional&lt;/code&gt; pour permettre au client sans certificat de s&amp;#039;authentifier.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;SSLVerifyDepth&lt;/code&gt; : 1 si vous utiliser votre propre et unique autorité de certification&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;SSLOptions&lt;/code&gt; : &lt;code&gt;+FakeBasicAuth&lt;/code&gt; permet de simuler une authentification basique, le DN du certificat devra être déclaré dans le fichier &lt;code&gt;htpasswd&lt;/code&gt; avec ou sans mot de passe chiffré (il ne sert à rien). &lt;code&gt;+StrictRequire&lt;/code&gt; : si le module &lt;acronym title=&quot;Secure Sockets Layer&quot;&gt;SSL&lt;/acronym&gt; échoue dans l&amp;#039;authentification, elle s&amp;#039;arrête sans passer à la suite.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Le reste correspond à une configuration &lt;a href=&quot;http://httpd.apache.org/docs/2.3/fr/mod/mod_auth_basic.html&quot; class=&quot;urlextern&quot; title=&quot;http://httpd.apache.org/docs/2.3/fr/mod/mod_auth_basic.html&quot;  rel=&quot;nofollow&quot;&gt;d&amp;#039;authentification basique&lt;/a&gt; très classique.
&lt;/p&gt;

&lt;p&gt;
Le fichier &lt;code&gt;/etc/apache2/htpasswd&lt;/code&gt; contiendra les utilisateurs authentifier sans &lt;acronym title=&quot;Secure Sockets Layer&quot;&gt;SSL&lt;/acronym&gt; et le DN des utilisateurs qui s&amp;#039;authentifie par certificat.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ cat /etc/apache2/htpasswd
martin:n88yx.lhyNwK2
/C=FR/ST=Labas/L=Chezlui/O=Famille Martin/CN=David/emailAddress=David@famillemartin.net&lt;/pre&gt;

&lt;p&gt;
La première ligne contient le compte de Martin et son mot de passe (vous pouvez essayer de le craquer, c&amp;#039;est bidon &lt;img src=&quot;http://www.collilieux.info/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;-)&quot; /&gt; ).
&lt;/p&gt;

&lt;p&gt;
La seconde ligne contient le DN (Distinguished Name) du certificat. Le mot de passe n&amp;#039;est pas utilisé par apache, il n&amp;#039;est pas obligatoire. Si vous ne connaissez pas le DN, charger une page authentifiée avec le navigateur et son certificat, le DN apparaît dans les logs apache ( &lt;code&gt;tail -f /var/log/apache2/ssl_access.log&lt;/code&gt;, par exemple).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT11 SECTION &quot;authentification client&quot; [7709-11279] --&gt;
&lt;h2 class=&quot;sectionedit12&quot;&gt;&lt;a name=&quot;optimiser_la_bande_passante&quot; id=&quot;optimiser_la_bande_passante&quot;&gt;optimiser la bande passante&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Il existe de nombreux mécanismes pour diminuer les besoins en bande passante d&amp;#039;un site. Au moins deux sont implémentables sur un serveur apache.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;compression_des_donnees&quot; id=&quot;compression_des_donnees&quot;&gt;compression des données&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
La plupart des navigateurs modernes et des serveurs supportent la &lt;a href=&quot;http://en.wikipedia.org/wiki/compression de données&quot; class=&quot;interwiki iw_wp&quot; title=&quot;http://en.wikipedia.org/wiki/compression de données&quot;&gt;compression de données&lt;/a&gt;. Pour cela, on utilisera une compression dite &lt;a href=&quot;http://en.wikipedia.org/wiki/gzip&quot; class=&quot;interwiki iw_wp&quot; title=&quot;http://en.wikipedia.org/wiki/gzip&quot;&gt;gzip&lt;/a&gt; qui utilise l&amp;#039;algorithme de compression &lt;a href=&quot;http://en.wikipedia.org/wiki/deflate&quot; class=&quot;interwiki iw_wp&quot; title=&quot;http://en.wikipedia.org/wiki/deflate&quot;&gt;deflate&lt;/a&gt;. Certes la compression utilisera plus de ressources côté serveur et client mais ce sera relativement faible à côté des gains en temps de transfert, surtout avec les machines que nous (sous-)utilisons actuellement.
&lt;/p&gt;

&lt;p&gt;
Il faut commencer par activer le module de compression :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# a2enmod deflate&lt;/pre&gt;

&lt;p&gt;
Ensuite, il faut configurer le niveau de compression et surtout le type de fichier compressé. En efet, il est inutile de perdre du temps à compresser des fichiers qui le sont déjà (par exemple des images au format &lt;a href=&quot;http://en.wikipedia.org/wiki/jpeg&quot; class=&quot;interwiki iw_wp&quot; title=&quot;http://en.wikipedia.org/wiki/jpeg&quot;&gt;jpeg&lt;/a&gt;).
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ cat /etc/apache2/mods-enabled/deflate.conf 
&amp;lt;IfModule mod_deflate.c&amp;gt;
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css image/svg+xml application/xhtml+xml application/xml application/rss+xml application/atom_xml application/x-javascript application/x-httpd-php application/x-httpd-fastphp
        SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
        SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary

&amp;lt;/IfModule&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Pour résumer, apache compressera le contenu de type &lt;code&gt;text&lt;/code&gt; mais pas les binaires. 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://code.google.com/intl/fr/speed/page-speed/docs/payload.html#GzipCompression&quot; class=&quot;urlextern&quot; title=&quot;http://code.google.com/intl/fr/speed/page-speed/docs/payload.html#GzipCompression&quot;  rel=&quot;nofollow&quot;&gt;google&lt;/a&gt; conseille de ne pas compresser les fichiers de moins de 150 octets car cela augmente leur taille mai je n&amp;#039;ai pas trouvé comment faire.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;utilisation_du_cache_du_navigateur&quot; id=&quot;utilisation_du_cache_du_navigateur&quot;&gt;utilisation du cache du navigateur&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Les navigateurs savent utiliser un cache qui leur permet de ne pas télécharger un contenu qui est déjà présente dans le cache. Pour que le cache fonctionne, encore faut-il que le serveur le demande gentillement.
&lt;/p&gt;

&lt;p&gt;
Pour cela, il faut activer le module apache &lt;code&gt;expires&lt;/code&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# a2enmod expires&lt;/pre&gt;

&lt;p&gt;
Comme pour la compression, il est possible de préciser ce qui peut être mis dans le cache et surtout pendant combien de temps.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ cat /etc/apache2/conf.d/expires.conf
ExpiresActive On
ExpiresByType image/gif &amp;quot;access plus 45 days&amp;quot;
ExpiresByType image/jpg &amp;quot;access plus 45 days&amp;quot;
ExpiresByType image/jpeg &amp;quot;access plus 45 days&amp;quot;
ExpiresByType image/png &amp;quot;access plus 45 days&amp;quot;
ExpiresByType image/x-icon &amp;quot;access plus 45 days&amp;quot;
ExpiresByType text/css &amp;quot;access plus 45 days&amp;quot;
ExpiresByType application/x-javascript &amp;quot;access plus 45 days&amp;quot;
ExpiresByType application/javascript &amp;quot;access plus 45 days&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Les images, les feuilles de style et le javascript seront gardés pendant 45 jours depuis le premier accès dans le cache du navigateur avant de télécharger de nouveau le contenu. C&amp;#039;est autant d&amp;#039;octets qui ne seront pas transférés et donc du temps de gagner au chargement des pages.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT12 SECTION &quot;optimiser la bande passante&quot; [11280-14682] --&gt;
&lt;h2 class=&quot;sectionedit13&quot;&gt;&lt;a name=&quot;extension_webdav&quot; id=&quot;extension_webdav&quot;&gt;extension webdav&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/webdav&quot; class=&quot;interwiki iw_wp&quot; title=&quot;http://en.wikipedia.org/wiki/webdav&quot;&gt;webdav&lt;/a&gt; est une extension de &lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt; qui permet notamment de publier des fichiers sur un serveur web. Apache2 dispose de cette extension.
&lt;/p&gt;

&lt;p&gt;
Commençons par activer les modules apache nécessaire :
&lt;/p&gt;
&lt;pre class=&quot;code shell&quot;&gt;$ sudo a2enmod dav dav_fs&lt;/pre&gt;

&lt;p&gt;
Il est également nécessaire d&amp;#039;ajouter quelques directives dans la configuration apache. J&amp;#039;ai choisi de créer un fichier &lt;code&gt;webdav&lt;/code&gt; dans le répertoire &lt;code&gt;/etc/apache2/conf.d&lt;/code&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ sudoedit /etc/apache2/conf.d/webdav 
alias /webdav /repertoire/webdav

&amp;lt;Location /webdav&amp;gt;
RewriteEngine On
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

DAV On

AuthType Basic
AuthName &amp;quot;Zone privée&amp;quot;
AuthBasicProvider   file
AuthUserFile        /etc/apache2/fichierdemotdepasses

&amp;lt;Limit GET PUT DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK&amp;gt;
  Require valid-user
&amp;lt;/Limit&amp;gt;
&amp;lt;/Location&amp;gt;&lt;/pre&gt;

&lt;p&gt;
L&amp;#039;alias indique à apache que l&amp;#039;url &lt;code&gt;/webdav&lt;/code&gt; pointe vers le répertoire &lt;code&gt;/repertoire/webdav&lt;/code&gt;. Ce répertoire contiendra les fichiers transférer en webdav. Ce répertoire n&amp;#039;est pas situé dans le répertoire racine du serveur web, les fichiers ne seront donc par accessible par la partie web « classique » (mon explication n&amp;#039;est pas bien claire …)
&lt;/p&gt;

&lt;p&gt;
Les 3 premières lignes redirige les utilisateurs qui arrivent en &lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt; vers HTTPS (pour ce qu&amp;#039;on fait, je préfère).
&lt;/p&gt;

&lt;p&gt;
La directive &lt;code&gt;DAV On&lt;/code&gt; active webdav dans ce répertoire (cette « location » pour être précis).
&lt;/p&gt;

&lt;p&gt;
Les 4 directives suivantes permettent de mettre en place une authentification. La liste des utilisateurs est contenue dans le fichier &lt;code&gt;/etc/apache2/fichierdemotdepasses&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Pour finir, on indique à apache qu&amp;#039;un utilisateur dûment authentifié (&lt;code&gt;valid-user&lt;/code&gt;) est nécessaire pour utiliser les commandes &lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt; : &lt;code&gt;GET PUT DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK&lt;/code&gt;, ce sont les commandes utilisées par webdav.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT13 SECTION &quot;extension webdav&quot; [14683-16569] --&gt;
&lt;h2 class=&quot;sectionedit14&quot;&gt;&lt;a name=&quot;plusieurs_domaines_sur_un_meme_serveur&quot; id=&quot;plusieurs_domaines_sur_un_meme_serveur&quot;&gt;plusieurs domaines sur un même serveur&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Il est assez pratique de mutualiser un serveur pour héberger plusieurs sites sur plusieurs domaines différents. Apache propose évidemment ce genre de fonctionnalité connue sous le nom de « virtual host » ou « vhost ».
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT14 SECTION &quot;plusieurs domaines sur un même serveur&quot; [16570-16849] --&gt;
&lt;h3 class=&quot;sectionedit15&quot;&gt;&lt;a name=&quot;http&quot; id=&quot;http&quot;&gt;HTTP&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt;, comment ça marche ? Quand le navigateur se connecte au port 80 du serveur, il peut demander la page d&amp;#039;un hôte particulier. Voilà ce que donne une capture. L&amp;#039;outil &lt;code&gt;netcat&lt;/code&gt; permet d&amp;#039;ouvrir une connexion TCP sur le port 80 et d&amp;#039;envoyer des commandes comme le ferait un navigateur.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;comment_ca_marche&quot; id=&quot;comment_ca_marche&quot;&gt;Comment ça marche ?&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;$ 
GET / HTTP/1.1
Host: collilieux.net&lt;/pre&gt;

&lt;p&gt;
C&amp;#039;est la commande &lt;code&gt;Host: collilieux.net&lt;/code&gt; qui permet au serveur d&amp;#039;« orienter » vers le bon hôte virtuel.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;configuration_apache&quot; id=&quot;configuration_apache&quot;&gt;Configuration Apache&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Configurer un hôte virtuel ne nécessite que quelques lignes de configuration :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ cat /etc/apache2/conf.d/site-available/monsite.net
&amp;lt;VirtualHost *:80&amp;gt;
        ServerAdmin &amp;quot;Gentil At Admin Point Net&amp;quot;
        ServerName monsite.net
        
        DocumentRoot /srv/data/www/monsite.net/
        
        LogLevel warn
        ErrorLog /var/log/apache2/monsite.net_error.log
        CustomLog /var/log/apache2/monsite.net_access.log combined
&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;$ cat /etc/apache2/conf.d/site-available/tonsite.net
&amp;lt;VirtualHost *:80&amp;gt;
        ServerAdmin &amp;quot;Gentil At Admin Point Net&amp;quot;
        ServerName tonsite.net
        
        DocumentRoot /srv/data/www/tonsite.net/
        
        LogLevel warn
        ErrorLog /var/log/apache2/tonsite.net_error.log
        CustomLog /var/log/apache2/tonsite.net_access.log combined
&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Pour activer ces sites :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ sudo a2ensite monsite.net
$ sudo a2ensite tonsite.net
$ sudo service apache2 reload&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT15 SECTION &quot;HTTP&quot; [16850-18377] --&gt;
&lt;h3 class=&quot;sectionedit16&quot;&gt;&lt;a name=&quot;https&quot; id=&quot;https&quot;&gt;HTTPS&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Avec &lt;acronym title=&quot;Secure Sockets Layer&quot;&gt;SSL&lt;/acronym&gt;, la méthode précédente ne permet pas de déterminer le vhost car la connexion TCP doit être chiffrée, il faut donc un certificat et partager un certificat entre plusieurs sites n&amp;#039;est pas très propre.
&lt;/p&gt;

&lt;p&gt;
On peut alors utiliser une fonctionnalité récente de &amp;#039;openssl&amp;#039;&amp;#039; intégrée dans le serveur Apache de Squeeze Server Name Indication (SNI). Lors de l&amp;#039;établissement du canal chiffré, le navigateur indique alors l&amp;#039;hôte (et autres paramètre comme les protocoles de chiffrement supportés).
&lt;/p&gt;

&lt;p&gt;
À terminer… &lt;img src=&quot;http://www.collilieux.info/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;-)&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;
 — &lt;em&gt;Le 17/01/2012 – Sylvain Collilieux –  Ce texte est sous licence &lt;a href=&quot;https://creativecommons.org/licenses/by/2.0/fr/#&quot; class=&quot;urlextern&quot; title=&quot;https://creativecommons.org/licenses/by/2.0/fr/#&quot;  rel=&quot;nofollow&quot;&gt;Creative Commons Attribution&lt;/a&gt;&lt;/em&gt; &lt;a href=&quot;https://creativecommons.org/licenses/by/2.0/fr/&quot; class=&quot;media&quot; title=&quot;https://creativecommons.org/licenses/by/2.0/fr/&quot;  rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://www.collilieux.info/lib/exe/fetch.php?hash=b4307c&amp;amp;media=http%3A%2F%2Fstatic.collilieux.net%2Fcc-by-badge.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT16 SECTION &quot;HTTPS&quot; [18378-] --&gt;</description>
            <author>sylvain</author>
        <category>doc</category>
            <pubDate>Tue, 17 Jan 2012 21:59:13 +0100</pubDate>
        </item>
        <item>
            <title>cours - [Cours]  ajout carte heuristique</title>
            <link>http://www.collilieux.info/cours</link>
            <description>
&lt;h1 class=&quot;sectionedit17&quot;&gt;&lt;a name=&quot;cours&quot; id=&quot;cours&quot;&gt;Cours&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Quelques supports de cours et exercices sous licence libre.
&lt;/p&gt;

&lt;p&gt;
Quelques &lt;a href=&quot;http://www.collilieux.info/doc&quot; class=&quot;wikilink1&quot; title=&quot;doc&quot;&gt;documentations&lt;/a&gt; sont également disponibles.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT17 SECTION &quot;Cours&quot; [1-144] --&gt;
&lt;h2 class=&quot;sectionedit18&quot;&gt;&lt;a name=&quot;licence_professionnelle_reseaux_sans_fil_et_securite&quot; id=&quot;licence_professionnelle_reseaux_sans_fil_et_securite&quot;&gt;Licence professionnelle Réseaux Sans Fil et Sécurité&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT18 SECTION &quot;Licence professionnelle Réseaux Sans Fil et Sécurité&quot; [145-214] --&gt;
&lt;h3 class=&quot;sectionedit19&quot;&gt;&lt;a name=&quot;cours1&quot; id=&quot;cours1&quot;&gt;Cours&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Supports du cours magistral sous licence GNU &lt;acronym title=&quot;GNU Free Documentation License&quot;&gt;FDL&lt;/acronym&gt; au format &lt;a href=&quot;http://static.collilieux.net/administration_gnulinux.tex&quot; class=&quot;urlextern&quot; title=&quot;http://static.collilieux.net/administration_gnulinux.tex&quot;  rel=&quot;nofollow&quot;&gt;LaTex&lt;/a&gt; et &lt;a href=&quot;http://static.collilieux.net/administration_gnulinux.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://static.collilieux.net/administration_gnulinux.pdf&quot;  rel=&quot;nofollow&quot;&gt;PDF&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Les images originales contenues dans le cours :&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://fr.wikipedia.org/wiki/Fichier:Richard_Stallman_2005_%28chrys%29.jpg&quot; class=&quot;urlextern&quot; title=&quot;http://fr.wikipedia.org/wiki/Fichier:Richard_Stallman_2005_%28chrys%29.jpg&quot;  rel=&quot;nofollow&quot;&gt;Richard Stallman&lt;/a&gt; Source Wikipedia&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://fr.wikipedia.org/wiki/Fichier:Official_gnu.svg&quot; class=&quot;urlextern&quot; title=&quot;http://fr.wikipedia.org/wiki/Fichier:Official_gnu.svg&quot;  rel=&quot;nofollow&quot;&gt;Official GNU&lt;/a&gt; Source Wikipedia&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://fr.wikipedia.org/wiki/Fichier:Linus_Torvalds.jpeg&quot; class=&quot;urlextern&quot; title=&quot;http://fr.wikipedia.org/wiki/Fichier:Linus_Torvalds.jpeg&quot;  rel=&quot;nofollow&quot;&gt;Linus Torvalds&lt;/a&gt; Source Wikipedia&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Histoire_d%27UNIX.svg/500px-Histoire_d%27UNIX.svg.png&quot; class=&quot;urlextern&quot; title=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Histoire_d%27UNIX.svg/500px-Histoire_d%27UNIX.svg.png&quot;  rel=&quot;nofollow&quot;&gt;Chronologie d&amp;#039;UNIX&lt;/a&gt; Source Wikipedia&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://upload.wikimedia.org/wikipedia/fr/timeline/9d0ddf3b032929f3ecc67074f975f3d7.png&quot; class=&quot;urlextern&quot; title=&quot;http://upload.wikimedia.org/wikipedia/fr/timeline/9d0ddf3b032929f3ecc67074f975f3d7.png&quot;  rel=&quot;nofollow&quot;&gt;Chronologie Linux&lt;/a&gt; Source Wikipedia&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.makelinux.net/kernel/Linux_kernel_diagram.png&quot; class=&quot;urlextern&quot; title=&quot;http://www.makelinux.net/kernel/Linux_kernel_diagram.png&quot;  rel=&quot;nofollow&quot;&gt;Linux kernel diagram&lt;/a&gt; © 2007-2009 Constantine Shulyupin&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://fr.wikipedia.org/wiki/Fichier:Netfilter-components.svg&quot; class=&quot;urlextern&quot; title=&quot;http://fr.wikipedia.org/wiki/Fichier:Netfilter-components.svg&quot;  rel=&quot;nofollow&quot;&gt;Netfilter components&lt;/a&gt; Source Wikipedia&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://fr.wikipedia.org/wiki/Fichier:Netfilter_schema.png&quot; class=&quot;urlextern&quot; title=&quot;http://fr.wikipedia.org/wiki/Fichier:Netfilter_schema.png&quot;  rel=&quot;nofollow&quot;&gt;Netfilter schema&lt;/a&gt; Source Wikipedia&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://content.linuxfoundation.org/20th/images/linuxthennowinfographic.jpg&quot; class=&quot;urlextern&quot; title=&quot;https://content.linuxfoundation.org/20th/images/linuxthennowinfographic.jpg&quot;  rel=&quot;nofollow&quot;&gt;Linux Then and Now&lt;/a&gt; © Linux Foundation&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.franceinter.fr/emission-l-edito-eco-1&quot; class=&quot;urlextern&quot; title=&quot;http://www.franceinter.fr/emission-l-edito-eco-1&quot;  rel=&quot;nofollow&quot;&gt;L&amp;#039;édito éco&lt;/a&gt; du 18 octobre 2011 à 7h20 &lt;a href=&quot;http://static.collilieux.net/18770-18.10.2011-ITEMA_20315945-0.mp3&quot; class=&quot;urlextern&quot; title=&quot;http://static.collilieux.net/18770-18.10.2011-ITEMA_20315945-0.mp3&quot;  rel=&quot;nofollow&quot;&gt;parle de la mort de Dennis Ritchie&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://ascendances.wordpress.com/2012/01/17/carte-heuristique-de-commandes-unix/&quot; class=&quot;urlextern&quot; title=&quot;https://ascendances.wordpress.com/2012/01/17/carte-heuristique-de-commandes-unix/&quot;  rel=&quot;nofollow&quot;&gt;Carte heuristique&lt;/a&gt; de commande Unix.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT19 SECTION &quot;Cours&quot; [215-1868] --&gt;
&lt;h3 class=&quot;sectionedit20&quot;&gt;&lt;a name=&quot;installer_debian&quot; id=&quot;installer_debian&quot;&gt;Installer Debian&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Pour installer Debian sur une machine physique ou virtuelle, on peut utiliser une image &lt;a href=&quot;http://cdimage.debian.org/debian-cd/6.0.3/i386/iso-cd/debian-6.0.3-i386-netinst.iso&quot; class=&quot;urlextern&quot; title=&quot;http://cdimage.debian.org/debian-cd/6.0.3/i386/iso-cd/debian-6.0.3-i386-netinst.iso&quot;  rel=&quot;nofollow&quot;&gt;ISO&lt;/a&gt; (démarrez sur l&amp;#039;image et laissez-vous guider). L&amp;#039;installation avec cette image minimale nécessitera un accès réseau.
&lt;/p&gt;

&lt;p&gt;
Cette debian permettra poursuivre les TP dans les mêmes conditions que à l&amp;#039;IUT.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT20 SECTION &quot;Installer Debian&quot; [1869-2280] --&gt;
&lt;h3 class=&quot;sectionedit21&quot;&gt;&lt;a name=&quot;td&quot; id=&quot;td&quot;&gt;TD&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
La &lt;a href=&quot;http://static.collilieux.net/td.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://static.collilieux.net/td.pdf&quot;  rel=&quot;nofollow&quot;&gt;correction du TD&lt;/a&gt; et ses &lt;a href=&quot;http://static.collilieux.net/td.tex&quot; class=&quot;urlextern&quot; title=&quot;http://static.collilieux.net/td.tex&quot;  rel=&quot;nofollow&quot;&gt;sources en LaTeX&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT21 SECTION &quot;TD&quot; [2281-2421] --&gt;
&lt;h3 class=&quot;sectionedit22&quot;&gt;&lt;a name=&quot;tp&quot; id=&quot;tp&quot;&gt;TP&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Pour les travaux pratiques, nous avons utilisé des containers &lt;a href=&quot;http://lxc.sourceforge.net&quot; class=&quot;urlextern&quot; title=&quot;http://lxc.sourceforge.net&quot;  rel=&quot;nofollow&quot;&gt;LXC&lt;/a&gt; créés avec un &lt;a href=&quot;https://collilieux.net/doc/lxc#script_de_creation_des_containers&quot; class=&quot;urlextern&quot; title=&quot;https://collilieux.net/doc/lxc#script_de_creation_des_containers&quot;  rel=&quot;nofollow&quot;&gt;script « maison »&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;ajouter_une_route_statique&quot; id=&quot;ajouter_une_route_statique&quot;&gt;Ajouter une route statique&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;sudo ip route add 192.168.30.0/24 via X.X.X.X &lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;tp_apache&quot; id=&quot;tp_apache&quot;&gt;TP apache&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://static.collilieux.net/tp_apache.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://static.collilieux.net/tp_apache.pdf&quot;  rel=&quot;nofollow&quot;&gt;Support du TP&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://news.netcraft.com/archives/category/web-server-survey/&quot; class=&quot;urlextern&quot; title=&quot;http://news.netcraft.com/archives/category/web-server-survey/&quot;  rel=&quot;nofollow&quot;&gt;D&amp;#039;après Netcraft, Apache est utilisé par environ 65% des serveurs web sur Internet&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;tp_nagios&quot; id=&quot;tp_nagios&quot;&gt;TP nagios&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Le support est sous licence &lt;a href=&quot;http://creativecommons.org/licenses/by/2.0/fr/&quot; class=&quot;urlextern&quot; title=&quot;http://creativecommons.org/licenses/by/2.0/fr/&quot;  rel=&quot;nofollow&quot;&gt;Creative Commons Attribution&lt;/a&gt; &lt;a href=&quot;http://www.collilieux.info/lib/exe/fetch.php?hash=b4307c&amp;amp;media=http%3A%2F%2Fstatic.collilieux.net%2Fcc-by-badge.png&quot; class=&quot;media&quot; title=&quot;http://static.collilieux.net/cc-by-badge.png&quot;&gt;&lt;img src=&quot;http://www.collilieux.info/lib/exe/fetch.php?hash=b4307c&amp;amp;media=http%3A%2F%2Fstatic.collilieux.net%2Fcc-by-badge.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://static.collilieux.net/tp_nagios.pdf&quot; class=&quot;urlextern&quot; title=&quot;http://static.collilieux.net/tp_nagios.pdf&quot;  rel=&quot;nofollow&quot;&gt;Support du TP&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://static.collilieux.net/tp_nagios.tex&quot; class=&quot;urlextern&quot; title=&quot;http://static.collilieux.net/tp_nagios.tex&quot;  rel=&quot;nofollow&quot;&gt;Sources LaTeX&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT22 SECTION &quot;TP&quot; [2422-3278] --&gt;
&lt;h3 class=&quot;sectionedit23&quot;&gt;&lt;a name=&quot;pour_aller_plus_loin&quot; id=&quot;pour_aller_plus_loin&quot;&gt;Pour aller plus loin&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Le livre &lt;a href=&quot;http://raphaelhertzog.fr/livre/cahier-admin-debian/&quot; class=&quot;urlextern&quot; title=&quot;http://raphaelhertzog.fr/livre/cahier-admin-debian/&quot;  rel=&quot;nofollow&quot;&gt;Cahier de l&amp;#039;Admin Debian&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Une mine d&amp;#039;informations  : &lt;a href=&quot;http://www.linux-france.org/prj/inetdoc/&quot; class=&quot;urlextern&quot; title=&quot;http://www.linux-france.org/prj/inetdoc/&quot;  rel=&quot;nofollow&quot;&gt;Interconnexion réseau et Logiciel Libre&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT23 SECTION &quot;Pour aller plus loin&quot; [3279-] --&gt;</description>
            <author>sylvain</author>
            <pubDate>Tue, 17 Jan 2012 19:51:44 +0100</pubDate>
        </item>
        <item>
            <title>doc:ls - [Tri par taille] </title>
            <link>http://www.collilieux.info/doc/ls</link>
            <description>
&lt;h1 class=&quot;sectionedit24&quot;&gt;&lt;a name=&quot;quelques_trucs_avec_la_commande_ls&quot; id=&quot;quelques_trucs_avec_la_commande_ls&quot;&gt;Quelques « trucs » avec la commande ls&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
La commande &lt;code&gt;ls&lt;/code&gt; est la commande Unix qui permet de lister des fichiers. Quelques options de cette commande sont bien pratiques…
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT24 SECTION &quot;Quelques « trucs » avec la commande ls&quot; [1-190] --&gt;
&lt;h2 class=&quot;sectionedit25&quot;&gt;&lt;a name=&quot;tri_par_date_de_modification&quot; id=&quot;tri_par_date_de_modification&quot;&gt;Tri par date de modification&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Liste les fichiers et répertoires classés par ordre inverse de date de dernière modification : les fichiers modifiés les plus récemment sont affichés en bas.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ls -ltr
-rw-r--r-- 1 root root  347  1 févr.  2009 logcheck
-rw-r--r-- 1 root root  108 30 nov.   2009 checkrestart
-rw-r--r-- 1 root root 1393  1 mars   2011 mailman
-rw------- 1 root root  150 17 nov.  08:46 php5&lt;/pre&gt;

&lt;p&gt;
Options :
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;-l&lt;/code&gt; : affichage détaillé (long)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;-t&lt;/code&gt; : tri par date de modification&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;-r&lt;/code&gt; : tri par ordre inverse&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Source &lt;a href=&quot;http://gulliver.eu.org/lug/gulliver/ml-archives/fevrier-2009/msg00019.html&quot; class=&quot;urlextern&quot; title=&quot;http://gulliver.eu.org/lug/gulliver/ml-archives/fevrier-2009/msg00019.html&quot;  rel=&quot;nofollow&quot;&gt;message de Gilles Lamiral&lt;/a&gt;, liste de discussion de Gulliver.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT25 SECTION &quot;Tri par date de modification&quot; [191-905] --&gt;
&lt;h2 class=&quot;sectionedit26&quot;&gt;&lt;a name=&quot;tri_par_taille&quot; id=&quot;tri_par_taille&quot;&gt;Tri par taille&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Tri par taille décroissante, la taille est affichée dans un format « lisible par un humain » avec &lt;code&gt;-h&lt;/code&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ls -ls
total 11288
10256 -rw-r----- 1 sylvain sylvain 10485760 12 janv. 20:43 gros
 1028 -rw-r----- 1 sylvain sylvain  1048576 12 janv. 20:43 moyen
    4 -rw-r----- 1 sylvain sylvain     1024 12 janv. 20:43 petit&lt;/pre&gt;

&lt;p&gt;
Tri par taille croissante :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ls -lhsr
total 12M
4,0K -rw-r----- 1 sylvain sylvain 1,0K 12 janv. 20:43 petit
1,1M -rw-r----- 1 sylvain sylvain 1,0M 12 janv. 20:43 moyen
 11M -rw-r----- 1 sylvain sylvain  10M 12 janv. 20:43 gros&lt;/pre&gt;

&lt;p&gt;
Options :
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;-l&lt;/code&gt; : affichage détaillé (long)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;-h&lt;/code&gt; : affichage de la taille dans un format lisible par un humain&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;-s&lt;/code&gt; : tri par taille&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;-r&lt;/code&gt; : tri par ordre inverse&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT26 SECTION &quot;Tri par taille&quot; [906-] --&gt;</description>
            <author>sylvain</author>
        <category>doc</category>
            <pubDate>Thu, 12 Jan 2012 20:56:59 +0100</pubDate>
        </item>
        <item>
            <title>doc:mplayer - créée</title>
            <link>http://www.collilieux.info/doc/mplayer</link>
            <description>
&lt;h1 class=&quot;sectionedit27&quot;&gt;&lt;a name=&quot;utilisation_de_mplayer&quot; id=&quot;utilisation_de_mplayer&quot;&gt;Utilisation de mplayer&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT27 SECTION &quot;Utilisation de mplayer&quot; [1-38] --&gt;
&lt;h2 class=&quot;sectionedit28&quot;&gt;&lt;a name=&quot;enregistrer_un_stream&quot; id=&quot;enregistrer_un_stream&quot;&gt;Enregistrer un stream&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
De nombreux flux sont proposés en streaming (par exemple la vidéo de rattrapage de France Télévision). La lecture de ces flux en direct peut s&amp;#039;arrêter, c&amp;#039;est rageant à 2 minutes de la fin… Il est possible d&amp;#039;enregistrer le flux pour le regarder plus tard :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ mplayer -dumpfile monesssion.wmv -dumpstream mms://videozones.francetv.fr/machine/chose/bidules/lemissioninteressante.wmv&lt;/pre&gt;

&lt;p&gt;
On peut lire ensuite le fichier &lt;code&gt;monemission.wmv&lt;/code&gt; avec n&amp;#039;importe quel lecteur vidéo (dont mplayer, évidemment).
&lt;/p&gt;

&lt;p&gt;
 — &lt;em&gt;Le 08/01/2012 – Sylvain Collilieux –  Ce texte est sous licence &lt;a href=&quot;https://creativecommons.org/licenses/by/2.0/fr/#&quot; class=&quot;urlextern&quot; title=&quot;https://creativecommons.org/licenses/by/2.0/fr/#&quot;  rel=&quot;nofollow&quot;&gt;Creative Commons Attribution&lt;/a&gt;&lt;/em&gt; &lt;a href=&quot;https://creativecommons.org/licenses/by/2.0/fr/&quot; class=&quot;media&quot; title=&quot;https://creativecommons.org/licenses/by/2.0/fr/&quot;  rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://www.collilieux.info/lib/exe/fetch.php?hash=b4307c&amp;amp;media=http%3A%2F%2Fstatic.collilieux.net%2Fcc-by-badge.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT28 SECTION &quot;Enregistrer un stream&quot; [39-] --&gt;</description>
            <author>sylvain</author>
        <category>doc</category>
            <pubDate>Sun, 08 Jan 2012 15:59:40 +0100</pubDate>
        </item>
        <item>
            <title>doc:lxc - Création de l'interface veth sur l'hôte</title>
            <link>http://www.collilieux.info/doc/lxc</link>
            <description>
&lt;h1 class=&quot;sectionedit29&quot;&gt;&lt;a name=&quot;lxc&quot; id=&quot;lxc&quot;&gt;lxc&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT29 SECTION &quot;lxc&quot; [1-19] --&gt;
&lt;h2 class=&quot;sectionedit30&quot;&gt;&lt;a name=&quot;generation_de_conteneurs&quot; id=&quot;generation_de_conteneurs&quot;&gt;Génération de conteneurs&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Le script ci-dessous est utilisé pour créer plusieurs conteneurs pour des étudiants. Chaque étudiant ce connecte ensuite au conteneur en &lt;acronym title=&quot;Secure Shell&quot;&gt;SSH&lt;/acronym&gt;. La machine initiale est créée avec le script &lt;code&gt;lxc-debian&lt;/code&gt; fourni par debian unstable en ajoutant les paquets :
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; iputils-ping&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; nano&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; sudo&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; vim&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
à la liste des paquets installés.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT30 SECTION &quot;Génération de conteneurs&quot; [20-402] --&gt;
&lt;h3 class=&quot;sectionedit31&quot;&gt;&lt;a name=&quot;script_de_creation_des_conteneurs&quot; id=&quot;script_de_creation_des_conteneurs&quot;&gt;Script de création des conteneurs&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Copyright (C) 2011 by Sylvain Collilieux &amp;lt;Sylvain@Collilieux.net&amp;gt;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Permission to use, copy, modify, and/or distribute this software for any&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# purpose with or without fee is hereby granted, provided that the above&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# copyright notice and this permission notice appear in all copies.&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# &lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot; AND THE AUTHOR DISCLAIMS ALL WARRANTIES&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;uid&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;id&lt;/span&gt; -u&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$uid&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; ; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'ERROR, you have to be root !!!'&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;lxc_root&lt;/span&gt;=&lt;span class=&quot;st_h&quot;&gt;'/var/lib/lxc'&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;fruits&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;abricot
airelle
alkekenge
ananas
arbouse
banane
bergamote
bigarade
canneberge
cassis
cerise
citron
clementine
coing
datte
figue
fraise
framboise
grenade
groseille
jujube
kiwi
lime
mandarine
melon
mirabelle
mure
myrtille
orange
pamplemousse
papaye
pasteque
peche
poire
pomme
prune
raisin&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# finish install&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;&amp;lt;&amp;lt;EOF
###################################################
&amp;nbsp;
Installation des paquets nécessaires
&amp;nbsp;
###################################################
EOF&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;apt-get&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; apache2 nagios3 lxc iproute &lt;span class=&quot;kw2&quot;&gt;ssh&lt;/span&gt; bridge-utils apt-cacher-ng debootstrap &lt;span class=&quot;kw2&quot;&gt;vim&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;less&lt;/span&gt; w3m 
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;deb http://ftp.univ-nantes.fr/debian squeeze main&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sources.list
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'Acquire::http{ Proxy &amp;quot;http://localhost:3142&amp;quot;; };'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apt.conf.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01proxy
&lt;span class=&quot;kw2&quot;&gt;apt-get&lt;/span&gt; update
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# configure network&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;EOF &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;interfaces
&lt;span class=&quot;co0&quot;&gt;# bridge for lxc&lt;/span&gt;
iface br0 inet static
  pre-up ip &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; add &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt; veth
  bridge_ports veth0
  bridge_fd &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
  bridge_maxwait &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
  address 192.168.30.254
  netmask 255.255.255.0
EOF
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;net&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ipv4&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ip_forward
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'net.ipv4.ip_forward=1'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sysctl.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local.conf
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Start lxc at boot time&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;perl&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pe&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;s/#RUN=yes/RUN=yes/&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;default&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lxc
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;&amp;lt;&amp;lt;EOF
###################################################
&amp;nbsp;
Création du containeur maître
&amp;nbsp;
###################################################
EOF&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# prepare container&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$lxc_root&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;master
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cgroup
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;cgroup          /cgroup         cgroup  defaults        0       0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab
&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-a&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# create main container&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;MIRROR&lt;/span&gt;=&lt;span class=&quot;st_h&quot;&gt;'http://ftp.univ-nantes.fr/debian'&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lxc-debian &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$lxc_root&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;master
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;&amp;lt;&amp;lt;EOF
###################################################
&amp;nbsp;
Création des containeurs élève
&amp;nbsp;
###################################################
EOF&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# create a container per fruit based on master&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;i&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;hostname&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$fruits&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
	&lt;span class=&quot;co0&quot;&gt;# create account for fruits on host&lt;/span&gt;
	useradd &lt;span class=&quot;re5&quot;&gt;--gid&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;users&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--create-home&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--shell&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--password&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;openssl &lt;span class=&quot;kw2&quot;&gt;passwd&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-1&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$hostname&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$hostname&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co0&quot;&gt;# create container from master&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$lxc_root&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;master &lt;span class=&quot;re1&quot;&gt;$lxc_root&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$hostname&lt;/span&gt;
	&lt;span class=&quot;co0&quot;&gt;# replace all reference to master by hostname&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;perl&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pe&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;s/master/&lt;span class=&quot;es2&quot;&gt;$hostname&lt;/span&gt;/&amp;quot;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$lxc_root&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$hostname&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config
	&lt;span class=&quot;co0&quot;&gt;# generate a private MAC address&lt;/span&gt;
	&lt;span class=&quot;re2&quot;&gt;mac&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;printf&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;AC:DE:48:E1:E1:%x&amp;quot;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co0&quot;&gt;# configure hostname and network&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;EOF &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$lxc_root&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$hostname&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config
lxc.utsname = &lt;span class=&quot;re1&quot;&gt;$hostname&lt;/span&gt;
lxc.network.hwaddr = &lt;span class=&quot;re1&quot;&gt;$mac&lt;/span&gt;
lxc.network.ipv4 = 192.168.30.&lt;span class=&quot;re1&quot;&gt;$i&lt;/span&gt;
lxc.network.veth.pair = veth10&lt;span class=&quot;re1&quot;&gt;$i&lt;/span&gt;
EOF
&amp;nbsp;
	&lt;span class=&quot;co0&quot;&gt;# Configure DEBIAN interfaces with static address&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;perl&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pe&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;s/dhcp/static/&amp;quot;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$lxc_root&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$hostname&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;rootfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;interfaces
	&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;EOF &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$lxc_root&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$hostname&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;rootfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;network&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;interfaces
	address 192.168.30.&lt;span class=&quot;re1&quot;&gt;$i&lt;/span&gt;
	netmask 255.255.255.0
	gateway 192.168.30.254
	broadcast 192.168.30.255
EOF
&amp;nbsp;
	&lt;span class=&quot;co0&quot;&gt;# host machine as proxy&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'Acquire::http{ Proxy &amp;quot;http://192.168.30.254:3142&amp;quot;; };'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$lxc_root&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$hostname&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;rootfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apt.conf.d&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01proxy
	&lt;span class=&quot;re2&quot;&gt;i&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i+&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;&amp;lt;&amp;lt;EOF
###################################################
&amp;nbsp;
Fini !
&amp;nbsp;
###################################################
EOF&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT31 SECTION &quot;Script de création des conteneurs&quot; [403-4389] --&gt;
&lt;h2 class=&quot;sectionedit32&quot;&gt;&lt;a name=&quot;reseau&quot; id=&quot;reseau&quot;&gt;Réseau&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Création de l&amp;#039;interface sur la machine.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo ip link add type veth
sudo ip addr add 192.168.30.254/24 dev veth1&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT32 SECTION &quot;Réseau&quot; [4390-] --&gt;</description>
            <author>sylvain</author>
        <category>doc</category>
            <pubDate>Sun, 08 Jan 2012 15:54:48 +0100</pubDate>
        </item>
        <item>
            <title>doc:firefox - Ajout des commentaires</title>
            <link>http://www.collilieux.info/doc/firefox</link>
            <description>
&lt;h1 class=&quot;sectionedit33&quot;&gt;&lt;a name=&quot;firefoxquelques_astuces&quot; id=&quot;firefoxquelques_astuces&quot;&gt;firefox : quelques astuces&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT33 SECTION &quot;firefox : quelques astuces&quot; [1-42] --&gt;
&lt;h2 class=&quot;sectionedit34&quot;&gt;&lt;a name=&quot;configurationaboutconfig&quot; id=&quot;configurationaboutconfig&quot;&gt;configuration : about:config&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Les astuces décrites sur cette page nécessite de taper &lt;code&gt;about:config&lt;/code&gt; dans la barre d&amp;#039;adresse de &lt;a href=&quot;http://www.mozilla-europe.org/fr/firefox/Firefox&quot; class=&quot;urlextern&quot; title=&quot;http://www.mozilla-europe.org/fr/firefox/Firefox&quot;  rel=&quot;nofollow&quot;&gt;firefox&lt;/a&gt;. Par défaut, &lt;a href=&quot;http://www.mozilla-europe.org/fr/firefox/Firefox&quot; class=&quot;urlextern&quot; title=&quot;http://www.mozilla-europe.org/fr/firefox/Firefox&quot;  rel=&quot;nofollow&quot;&gt;firefox&lt;/a&gt; affiche un message d&amp;#039;avertissement, lisez-le.
&lt;/p&gt;

&lt;p&gt;
Maintenant que vous êtes prévenus, à vos risques et périls …
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT34 SECTION &quot;configuration : about:config&quot; [43-437] --&gt;
&lt;h3 class=&quot;sectionedit35&quot;&gt;&lt;a name=&quot;moteur_de_recherche_de_la_barre_d_url&quot; id=&quot;moteur_de_recherche_de_la_barre_d_url&quot;&gt;Moteur de recherche de la barre d&amp;#039;URL&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Si vous tapez un texte dans la barre d&amp;#039;&lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; et que ce texte n&amp;#039;est pas une &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt;, Firefox lance une recherche sur google avec les mots entrés. Pour changer de moteur, il faut modifier &lt;code&gt;keyword.&lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt;&lt;/code&gt; et mettre une &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; de recherche. Par exemple, pour utiliser &lt;a href=&quot;https://duckduckgo.com&quot; class=&quot;urlextern&quot; title=&quot;https://duckduckgo.com&quot;  rel=&quot;nofollow&quot;&gt;DuckDuckGo&lt;/a&gt; en français et en HTTPS, on peut entrer la valeur : &lt;code&gt;&lt;a href=&quot;https://duckduckgo.com/?kl=fr-fr&amp;amp;kp=-1&amp;amp;q=&quot; class=&quot;urlextern&quot; title=&quot;https://duckduckgo.com/?kl=fr-fr&amp;amp;kp=-1&amp;amp;q=&quot;  rel=&quot;nofollow&quot;&gt;https://duckduckgo.com/?kl=fr-fr&amp;amp;kp=-1&amp;amp;q=&lt;/a&gt;&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT35 SECTION &quot;Moteur de recherche de la barre d'URL&quot; [438-882] --&gt;
&lt;h3 class=&quot;sectionedit36&quot;&gt;&lt;a name=&quot;frequence_de_sauvegarde_de_la_session&quot; id=&quot;frequence_de_sauvegarde_de_la_session&quot;&gt;Fréquence de sauvegarde de la session&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Par défaut, Firefox sauvegarde les onglets ouverts toutes les 10 secondes pour pouvoir les restaurer en cas de plantage. Pour augmenter ou diminuer cette fréquence, il faut modifier le paramètre &lt;code&gt;browser.sessionstore.interval&lt;/code&gt; dans le &lt;code&gt;about:config&lt;/code&gt;. La valeur est exprimée en msec. Pour info, j&amp;#039;ai mis 60000 (une minute).
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://maketecheasier.com/28-coolest-firefox-aboutconfig-tricks/2008/08/21&quot; class=&quot;urlextern&quot; title=&quot;http://maketecheasier.com/28-coolest-firefox-aboutconfig-tricks/2008/08/21&quot;  rel=&quot;nofollow&quot;&gt;source&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT36 SECTION &quot;Fréquence de sauvegarde de la session&quot; [883-1353] --&gt;
&lt;h3 class=&quot;sectionedit37&quot;&gt;&lt;a name=&quot;delai_avant_l_installation_d_une_extension&quot; id=&quot;delai_avant_l_installation_d_une_extension&quot;&gt;délai avant l&amp;#039;installation d&amp;#039;une extension&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Lors de l&amp;#039;installation d&amp;#039;une extension, Firefox affiche un message d&amp;#039;alerte concernant la sécurité pendant 2000 msec avant de pouvoir cliquer ur « installer ». Quand on a lu ce message une fois, on l&amp;#039;a lu 1000 fois &lt;img src=&quot;http://www.collilieux.info/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;-)&quot; /&gt;. J&amp;#039;ai mis cette valeur à 0 pour ne plus avoir à attendre. Dans &lt;code&gt;about:config&lt;/code&gt;, il faut modifier la valeur &lt;code&gt;security.dialog_enable_delay&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Ce paramètre fonctionne également avec Thunderbird.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://maketecheasier.com/28-coolest-firefox-aboutconfig-tricks/2008/08/21&quot; class=&quot;urlextern&quot; title=&quot;http://maketecheasier.com/28-coolest-firefox-aboutconfig-tricks/2008/08/21&quot;  rel=&quot;nofollow&quot;&gt;source&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT37 SECTION &quot;délai avant l'installation d'une extension&quot; [1354-1919] --&gt;
&lt;h3 class=&quot;sectionedit38&quot;&gt;&lt;a name=&quot;certificat_auto-signemoins_de_clic_svp&quot; id=&quot;certificat_auto-signemoins_de_clic_svp&quot;&gt;certificat auto-signé : moins de clic SVP&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Quand on surfe sur une site en HTTPS avec un certificat &lt;acronym title=&quot;Secure Sockets Layer&quot;&gt;SSL&lt;/acronym&gt; auto-signé, non seulement Firefox non affiche une énorme page d&amp;#039;erreur à faire fuir mais en plus, l&amp;#039;ajout d&amp;#039;une exception pour accepter le certificat est particulièrement lourde. Pour alléger le processus, il faut modifier deux valeurs dans &lt;code&gt;about:config&lt;/code&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;browser.xul.error_pages.expert_bad_cert : True
browser.ssl_override_behavior : 2&lt;/pre&gt;

&lt;p&gt;
Firefox téléchargera automatiquement le certificat et vous économiserez deux clics sans amoindrir le niveau de sécurité, il faut juste faire attention aux certificats acceptés.
&lt;/p&gt;

&lt;p&gt;
source : &lt;a href=&quot;http://linuxfr.org/~x0ra/26691.html#935329&quot; class=&quot;urlextern&quot; title=&quot;http://linuxfr.org/~x0ra/26691.html#935329&quot;  rel=&quot;nofollow&quot;&gt;linuxfr&lt;/a&gt; et &lt;a href=&quot;http://wiki.slackware-fr.org/logiciels:trucs:reconcilier_firefox_3_x_x_avec_les_certificats_ssl&quot; class=&quot;urlextern&quot; title=&quot;http://wiki.slackware-fr.org/logiciels:trucs:reconcilier_firefox_3_x_x_avec_les_certificats_ssl&quot;  rel=&quot;nofollow&quot;&gt;slackware-fr&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
27 septembre 2009 : visiblement, cette astuce ne fonctionne plus avec firefox 3.5.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT38 SECTION &quot;certificat auto-signé : moins de clic SVP&quot; [1920-2845] --&gt;
&lt;h3 class=&quot;sectionedit39&quot;&gt;&lt;a name=&quot;selectionner_toute_l_url_de_la_barre_d_adresse&quot; id=&quot;selectionner_toute_l_url_de_la_barre_d_adresse&quot;&gt;sélectionner toute l&amp;#039;url de la barre d&amp;#039;adresse&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Sous Linux, lors d&amp;#039;un clic sur la barre d&amp;#039;adresse, l&amp;#039;&lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; n&amp;#039;est pas sélectionnée. Pour modifier ce comportement :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;browser.urlbar.clickSelectsAll = true&lt;/pre&gt;

&lt;p&gt;
&lt;a href=&quot;http://blog.cyber-developpement.com/tag/firefox&quot; class=&quot;urlextern&quot; title=&quot;http://blog.cyber-developpement.com/tag/firefox&quot;  rel=&quot;nofollow&quot;&gt;source&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT39 SECTION &quot;sélectionner toute l'url de la barre d'adresse&quot; [2846-3135] --&gt;
&lt;h3 class=&quot;sectionedit40&quot;&gt;&lt;a name=&quot;barre_de_defilement_a_gauche&quot; id=&quot;barre_de_defilement_a_gauche&quot;&gt;barre de défilement à gauche&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Lorsqu&amp;#039;un texte est trop long pour être affiché sur un seul écran, Firefox affiche une barre de défilement. Par défaut, pour les langues qui se lisent de gauche à droite, cette barre est à droite. En la positionnant à gauche, elle devient plus accessible pour les texte écris de gauche à droite.
&lt;/p&gt;

&lt;p&gt;
Pour cela, il faut changer la valeur de &lt;code&gt;layout.scrollbar.side&lt;/code&gt; et la paser à 3.
&lt;/p&gt;

&lt;p&gt;
Source :
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; la liste de diffusion de Gulliver mais je ne retrouve plus le lien vers l&amp;#039;archive, il est peut-être passé sur une liste qui n&amp;#039;est pas archivée publiquement. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://kb.mozillazine.org/Layout.scrollbar.side&quot; class=&quot;urlextern&quot; title=&quot;http://kb.mozillazine.org/Layout.scrollbar.side&quot;  rel=&quot;nofollow&quot;&gt;mozillazine&lt;/a&gt; est une mine d&amp;#039;informations.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT40 SECTION &quot;barre de défilement à gauche&quot; [3136-3842] --&gt;
&lt;h3 class=&quot;sectionedit41&quot;&gt;&lt;a name=&quot;geolocalisation&quot; id=&quot;geolocalisation&quot;&gt;géolocalisation&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Depuis sa version 3.5, Firefox &lt;a href=&quot;http://fr.www.mozilla.com/fr/firefox/geolocation/&quot; class=&quot;urlextern&quot; title=&quot;http://fr.www.mozilla.com/fr/firefox/geolocation/&quot;  rel=&quot;nofollow&quot;&gt;peut envoyer&lt;/a&gt; des &lt;a href=&quot;http://www.w3.org/TR/geolocation-API/&quot; class=&quot;urlextern&quot; title=&quot;http://www.w3.org/TR/geolocation-API/&quot;  rel=&quot;nofollow&quot;&gt;données de géolocalisation&lt;/a&gt; aux sites qui le demande et si vous êtes d&amp;#039;accord.
&lt;/p&gt;

&lt;p&gt;
Pour supprimer purement cette fonctionnalité changer la valeur de &lt;code&gt;geo.enabled&lt;/code&gt; de &lt;code&gt;true&lt;/code&gt; à &lt;code&gt;false&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Source : site &lt;a href=&quot;http://fr.www.mozilla.com/fr/firefox/geolocation/&quot; class=&quot;urlextern&quot; title=&quot;http://fr.www.mozilla.com/fr/firefox/geolocation/&quot;  rel=&quot;nofollow&quot;&gt;mozilla&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT41 SECTION &quot;géolocalisation&quot; [3843-4283] --&gt;
&lt;h3 class=&quot;sectionedit42&quot;&gt;&lt;a name=&quot;safebrowsing&quot; id=&quot;safebrowsing&quot;&gt;safebrowsing&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Lorsque vous entrez une &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt;, Firefox &lt;a href=&quot;http://www.mozilla.com/en-US/firefox/phishing-protection/&quot; class=&quot;urlextern&quot; title=&quot;http://www.mozilla.com/en-US/firefox/phishing-protection/&quot;  rel=&quot;nofollow&quot;&gt;vérifie&lt;/a&gt; qu&amp;#039;elle n&amp;#039;est pas sur une liste noire d&amp;#039;&lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt;. Par défaut Mozilla utilise les listes de &lt;a href=&quot;http://www.google.com/tools/firefox/safebrowsing/&quot; class=&quot;urlextern&quot; title=&quot;http://www.google.com/tools/firefox/safebrowsing/&quot;  rel=&quot;nofollow&quot;&gt;google&lt;/a&gt; (encore eux &lt;img src=&quot;http://www.collilieux.info/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;-)&quot; /&gt;). Ces listes sont téléchargées toutes les 30 minutes par le navigateur.
&lt;/p&gt;

&lt;p&gt;
Ce fonctionnement est désactivable en cliquant quelque part dans les options ou via &lt;code&gt;&amp;#039;about::config&lt;/code&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;browser.safebrowsing.enabled: false
browser.safebrowsing.malware.enabled: false&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT42 SECTION &quot;safebrowsing&quot; [4284-4857] --&gt;
&lt;h3 class=&quot;sectionedit43&quot;&gt;&lt;a name=&quot;plugin_manquant&quot; id=&quot;plugin_manquant&quot;&gt;Plugin manquant&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Si vous n&amp;#039;avez pas le plugin flash et que vous ne voulez pas être alerté par un message sur de (trop) nombreuses pages.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;plugins.hide_infobar_for_missing_plugin = false&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT43 SECTION &quot;Plugin manquant&quot; [4858-5070] --&gt;
&lt;h3 class=&quot;sectionedit44&quot;&gt;&lt;a name=&quot;restauration_des_onglets&quot; id=&quot;restauration_des_onglets&quot;&gt;restauration des onglets&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;p&gt;&lt;div class=&quot;noteimportant&quot;&gt;Inutile à partir de Firefox 8
&lt;/div&gt;&lt;/p&gt;
&lt;/p&gt;

&lt;p&gt;
À partir de Firefox 4, une nouvelle option a fait son apparition. À l&amp;#039;ouverture, le navigateur peut afficher la liste de tous les onglets ouverts dans la session précédent mais ne charger réellement que le contenu de chaque onglet uniquement que lorsqu&amp;#039;on clique dessus. Si on utilise beaucoup d&amp;#039;onglet, cela limite le temps de chargement du navigateur.
&lt;/p&gt;

&lt;p&gt;
Dans &lt;code&gt;about::config&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;browser.sessionstore.max_concurrent_tabs: 0&lt;/pre&gt;

&lt;p&gt;
&lt;a href=&quot;http://blogzinet.free.fr/blog/index.php?post/2011/01/20/Ne-pas-charger-tous-les-onglets-%C3%A0-l-ouverture-de-Firefox&quot; class=&quot;urlextern&quot; title=&quot;http://blogzinet.free.fr/blog/index.php?post/2011/01/20/Ne-pas-charger-tous-les-onglets-%C3%A0-l-ouverture-de-Firefox&quot;  rel=&quot;nofollow&quot;&gt;Source&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT44 SECTION &quot;restauration des onglets&quot; [5071-5736] --&gt;
&lt;h3 class=&quot;sectionedit45&quot;&gt;&lt;a name=&quot;une_barre_d_adresses_comme_avant&quot; id=&quot;une_barre_d_adresses_comme_avant&quot;&gt;une barre d&amp;#039;adresses comme avant&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Depuis Firefox 6, la barre d&amp;#039;&lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; cache le protocole utilisé pour se connecter au site si c&amp;#039;est &lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt;. Si vous voulez toujours voir « http » dans la barre d&amp;#039;url :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;browser.urlbar.trimURLs = false&lt;/pre&gt;

&lt;p&gt;
Depuis Firefox 7, seul le domaine de premier niveau (collilieux) et l&amp;#039;extension (.net) sont mis en valeur dans la barre d&amp;#039;&lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt;, le reste est grisé. Si vous voulez voir l&amp;#039;&lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; complète en noir.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;browser.urlbar.formatting.enabled = false&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT45 SECTION &quot;une barre d'adresses comme avant&quot; [5737-6245] --&gt;
&lt;h3 class=&quot;sectionedit46&quot;&gt;&lt;a name=&quot;referer&quot; id=&quot;referer&quot;&gt;referer&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Il est possible de ne pas envoyer de &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/fr/wiki/Referer&quot; class=&quot;urlextern&quot; title=&quot;https://secure.wikimedia.org/wikipedia/fr/wiki/Referer&quot;  rel=&quot;nofollow&quot;&gt;referer&lt;/a&gt; pour éviter de laisser une de plus.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;network.http.sendRefererHeader = 0&lt;/pre&gt;

&lt;p&gt;
&lt;a href=&quot;http://kb.mozillazine.org/Network.http.sendRefererHeader&quot; class=&quot;urlextern&quot; title=&quot;http://kb.mozillazine.org/Network.http.sendRefererHeader&quot;  rel=&quot;nofollow&quot;&gt;Source&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT46 SECTION &quot;referer&quot; [6246-6526] --&gt;
&lt;h2 class=&quot;sectionedit47&quot;&gt;&lt;a name=&quot;le_about_des_abouts&quot; id=&quot;le_about_des_abouts&quot;&gt;le about des abouts&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Cet article fait souvent référence à &lt;code&gt;about:config&lt;/code&gt; mais il existe une longue liste de &lt;code&gt;about:&lt;/code&gt;. Pour avoir cette liste, saisissez &lt;code&gt;about:about&lt;/code&gt; dans la barre d&amp;#039;adresses.
&lt;/p&gt;

&lt;p&gt;
Certains sont intéressants comme :
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;about:sync-log&lt;/code&gt; : les logs de Firefox sync, le niveau de log est configurable avec les directives &lt;code&gt;services.sync.log.???&lt;/code&gt; dans &lt;code&gt;about:config&lt;/code&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;about:addons&lt;/code&gt; qui permet d&amp;#039;accéder aux extensions sans chercher dans les menus&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;about:privatebrowsing&lt;/code&gt; pour passer en mode navigation privée&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;about:memory&lt;/code&gt; pour voir la consommation mémoire des différentes parties de Firefox&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;about:rights&lt;/code&gt; qui affiche VOS droits&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;about:license&lt;/code&gt; qui affiche les licences&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;about:support&lt;/code&gt; permet d&amp;#039;avoir des infos sur la configuration, les extensions, etc.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;about:permissions&lt;/code&gt; affiche les permissions que vous accordez aux sites webs (cookies, stockage de mots de passe, géolocalisation, etc.)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; …&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT47 SECTION &quot;le about des abouts&quot; [6527-7512] --&gt;
&lt;h2 class=&quot;sectionedit48&quot;&gt;&lt;a name=&quot;extensions&quot; id=&quot;extensions&quot;&gt;extensions&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Les extensions de Firefox sont un atout de taille. Cet grâce à cet atout que je n&amp;#039;arrive pas à changer de navigateur, pourtant j&amp;#039;ai essayé &lt;img src=&quot;http://www.collilieux.info/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;-)&quot; /&gt;. Quelques extensions que je trouve bien utile sont listées ci-après
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT48 SECTION &quot;extensions&quot; [7513-7753] --&gt;
&lt;h3 class=&quot;sectionedit49&quot;&gt;&lt;a name=&quot;adblock_plus&quot; id=&quot;adblock_plus&quot;&gt;adblock plus&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Comment surfer sans l&amp;#039;extension &lt;a href=&quot;https://addons.mozilla.org/fr/firefox/addon/1865&quot; class=&quot;urlextern&quot; title=&quot;https://addons.mozilla.org/fr/firefox/addon/1865&quot;  rel=&quot;nofollow&quot;&gt;adbloc plus&lt;/a&gt; qui permet de ne pas afficher la plupart des publicités des pages web ? De nombreux sites deviennent nettement plus lisibles grâce à cette extension &lt;img src=&quot;http://www.collilieux.info/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;-)&quot; /&gt;.
&lt;/p&gt;

&lt;p&gt;
adblock permet également de bloquer les « web bugs » et autres dispositifs qui permettent de nous suivre sur le net. Pour cela, il faut ajouter la liste &lt;a href=&quot;https://easylist.adblockplus.org/en/#easyprivacy&quot; class=&quot;urlextern&quot; title=&quot;https://easylist.adblockplus.org/en/#easyprivacy&quot;  rel=&quot;nofollow&quot;&gt;EasyPrivacy&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT49 SECTION &quot;adblock plus&quot; [7754-8253] --&gt;
&lt;h3 class=&quot;sectionedit50&quot;&gt;&lt;a name=&quot;tab_mix_plus&quot; id=&quot;tab_mix_plus&quot;&gt;tab mix plus&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Firefox a été le premier navigateur à implémenter la navigation par onglet. Toutefois, la configuration du comportement et de la présentation de ces onglets sont assez limités. &lt;a href=&quot;https://addons.mozilla.org/fr/firefox/addon/1122&quot; class=&quot;urlextern&quot; title=&quot;https://addons.mozilla.org/fr/firefox/addon/1122&quot;  rel=&quot;nofollow&quot;&gt;Tab Mix Plus&lt;/a&gt; permet de configurer la gestion des onglets. Mozilla gagnerait à intégrer certaines options dans Firefox.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT50 SECTION &quot;tab mix plus&quot; [8254-8638] --&gt;
&lt;h3 class=&quot;sectionedit51&quot;&gt;&lt;a name=&quot;refcontrol&quot; id=&quot;refcontrol&quot;&gt;refcontrol&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://addons.mozilla.org/fr/firefox/addon/953&quot; class=&quot;urlextern&quot; title=&quot;https://addons.mozilla.org/fr/firefox/addon/953&quot;  rel=&quot;nofollow&quot;&gt;refcontrol&lt;/a&gt; permet de contrôler le&lt;a href=&quot;http://fr.wikipedia.org/wiki/Referer&quot; class=&quot;urlextern&quot; title=&quot;http://fr.wikipedia.org/wiki/Referer&quot;  rel=&quot;nofollow&quot;&gt;HTTP referer&lt;/a&gt;. C&amp;#039;est toujours un peu de vie privée préservée.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT51 SECTION &quot;refcontrol&quot; [8639-8851] --&gt;
&lt;h3 class=&quot;sectionedit52&quot;&gt;&lt;a name=&quot;syncplaces&quot; id=&quot;syncplaces&quot;&gt;syncplaces&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;p&gt;&lt;div class=&quot;notewarning&quot;&gt;Cette extension est largement surpassée par Firefox Sync
&lt;/div&gt;&lt;/p&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://addons.mozilla.org/fr/firefox/addon/8426&quot; class=&quot;urlextern&quot; title=&quot;https://addons.mozilla.org/fr/firefox/addon/8426&quot;  rel=&quot;nofollow&quot;&gt;syncplaces&lt;/a&gt; permet de synchroniser vos marques-pages et/ou vos mots de passe entre plusieurs sessions de Mozilla Firefox (y compris la &lt;a href=&quot;http://www.collilieux.info/blog/2010/0122quelques_jours_avec_un_fennec&quot; class=&quot;wikilink1&quot; title=&quot;blog:2010:0122quelques_jours_avec_un_fennec&quot;&gt;version mobile&lt;/a&gt;). Cette extension dispose de quelques foncitonnalités de &lt;a href=&quot;https://addons.mozilla.org/fr/firefox/addon/8426&quot; class=&quot;urlextern&quot; title=&quot;https://addons.mozilla.org/fr/firefox/addon/8426&quot;  rel=&quot;nofollow&quot;&gt;weave&lt;/a&gt; qui permet, en plus, de synchroniser vos onglets ouverts et votre historique.
&lt;/p&gt;

&lt;p&gt;
Weave nécessite d&amp;#039;utiliser un serveur de Mozilla, il est possible d&amp;#039;installer son propre serveur mais pour le moment le tout ressemble à une usine à gaz, surtout pour un particulier (le serveur de Mozilla gérera des milliers ou millions d&amp;#039;utilisateurs).
&lt;/p&gt;

&lt;p&gt;
La synchroniser avec syncplaces peut utiliser les protocoles &lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt;, HTTPS, &lt;acronym title=&quot;File Transfer Protocol&quot;&gt;FTP&lt;/acronym&gt; ou un fichier sur une disque (ou clef USB). La synchronisation peut-être automatique à un fréquence définie, à chaque démarrage, chaque arrêt ou manuellement.
&lt;/p&gt;

&lt;p&gt;
Pour utiliser syncplaces avec un serveur &lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt;(S), il faut que le serveur supporte &lt;a href=&quot;http://en.wikipedia.org/wiki/webdav&quot; class=&quot;interwiki iw_wp&quot; title=&quot;http://en.wikipedia.org/wiki/webdav&quot;&gt;webdav&lt;/a&gt;, une extension du protocole &lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt;. J&amp;#039;ai documenté la &lt;a href=&quot;http://www.collilieux.info/doc/apache2#extension_webdav&quot; class=&quot;wikilink1&quot; title=&quot;doc:apache2&quot;&gt;configuration&lt;/a&gt; de cette extension avec apache2. C&amp;#039;est très simple à mettre en place pour qui dispose d&amp;#039;un serveur apache.
&lt;/p&gt;

&lt;p&gt;
syncplaces propose également de chiffrer les fichiers en AES ou TEA. C&amp;#039;est une option que je conseille, forcément &lt;img src=&quot;http://www.collilieux.info/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;-)&quot; /&gt;.
&lt;/p&gt;

&lt;p&gt;
Je ne rentrerai pas dans toutes les options de l&amp;#039;extension, je vous laisse découvrir &lt;img src=&quot;http://www.collilieux.info/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;-)&quot; /&gt;.
&lt;/p&gt;

&lt;p&gt;
Merci à Mikaël de m&amp;#039;avoir fait découvrir cet outil bien pratique !
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT52 SECTION &quot;syncplaces&quot; [8852-10496] --&gt;
&lt;h3 class=&quot;sectionedit53&quot;&gt;&lt;a name=&quot;httpfox&quot; id=&quot;httpfox&quot;&gt;httpfox&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Pour suivre toutes les requêtes &lt;acronym title=&quot;Hyper Text Transfer Protocol&quot;&gt;HTTP&lt;/acronym&gt; en direct, &lt;a href=&quot;https://addons.mozilla.org/fr/firefox/addon/6647/&quot; class=&quot;urlextern&quot; title=&quot;https://addons.mozilla.org/fr/firefox/addon/6647/&quot;  rel=&quot;nofollow&quot;&gt;httpfox&lt;/a&gt; est bien pratique (plus pratique que sa cousine &lt;a href=&quot;https://addons.mozilla.org/fr/firefox/addon/3829/&quot; class=&quot;urlextern&quot; title=&quot;https://addons.mozilla.org/fr/firefox/addon/3829/&quot;  rel=&quot;nofollow&quot;&gt;livehttpheaders&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Cette extension est une sorte d&amp;#039;analyseur. Ça peut être pratique pour vérifier la configuration d&amp;#039;un serveur web ou d&amp;#039;une application ou juste pas curiosité.
&lt;/p&gt;

&lt;p&gt;
&amp;amp;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT53 SECTION &quot;httpfox&quot; [10497-10911] --&gt;
&lt;h2 class=&quot;sectionedit54&quot;&gt;&lt;a name=&quot;awesome_bar&quot; id=&quot;awesome_bar&quot;&gt;awesome bar&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Par défaut, lorsque qu&amp;#039;on tape quelque chose dans la barre, la recherche est lancée dans l&amp;#039;historique et les marque-pages. C&amp;#039;est modifiable dans les préférences de la vie privée (en bas).
&lt;/p&gt;

&lt;p&gt;
En préfixant ou suffixant le texte par le caractère *, la recherche ne concernera que les marque-pages. Avec +, ce sera les tags. Toutes ces valeurs sont modifiables dans &lt;code&gt;about:config&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
La liste des caractères utilisables :
&lt;/p&gt;
&lt;div class=&quot;table sectionedit55&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; Dans &lt;code&gt;about:config&lt;/code&gt;  	 	&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Caractère &lt;/th&gt;&lt;th class=&quot;col2&quot;&gt; Action &lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;code&gt;browser.urlbar.match.title&lt;/code&gt; 	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  #  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;Recherche dans les titres des pages de l&amp;#039;historique.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;code&gt;browser.urlbar.match.url&lt;/code&gt; 	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  @  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;Recherche dans les &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt; de l&amp;#039;historique.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;code&gt;browser.urlbar.restrict.bookmark&lt;/code&gt; 	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  *  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;Recherche dans les marques-pages.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;code&gt;browser.urlbar.restrict.history&lt;/code&gt; 	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  ^  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;Recherche dans l&amp;#039;historique (titres et &lt;acronym title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/acronym&gt;).  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;code&gt;browser.urlbar.restrict.tag&lt;/code&gt; 	 	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  +  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;Recherche parmi les marques-pages tagués.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;code&gt;browser.urlbar.restrict.typed&lt;/code&gt;	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  ~  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;Returns only results that have been typed.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;code&gt;browser.urlbar.restrict.openpage&lt;/code&gt; 	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  %  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;Recherche dans les onglets ouverts  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT55 TABLE [11363-12039] --&gt;
&lt;p&gt;
&lt;a href=&quot;http://kb.mozillazine.org/Browser.urlbar.match.url&quot; class=&quot;urlextern&quot; title=&quot;http://kb.mozillazine.org/Browser.urlbar.match.url&quot;  rel=&quot;nofollow&quot;&gt;source&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
 — &lt;em&gt;Le 22/11/2011 – Sylvain Collilieux – Ce texte est sous licence &lt;a href=&quot;https://creativecommons.org/licenses/by/2.0/fr/#&quot; class=&quot;urlextern&quot; title=&quot;https://creativecommons.org/licenses/by/2.0/fr/#&quot;  rel=&quot;nofollow&quot;&gt;Creative Commons Attribution&lt;/a&gt;&lt;/em&gt; &lt;a href=&quot;https://creativecommons.org/licenses/by/2.0/fr/&quot; class=&quot;media&quot; title=&quot;https://creativecommons.org/licenses/by/2.0/fr/&quot;  rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://www.collilieux.info/lib/exe/fetch.php?hash=b4307c&amp;amp;media=http%3A%2F%2Fstatic.collilieux.net%2Fcc-by-badge.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT54 SECTION &quot;awesome bar&quot; [10912-] --&gt;</description>
            <author>sylvain</author>
        <category>doc</category>
            <pubDate>Sun, 08 Jan 2012 15:21:15 +0100</pubDate>
        </item>
        <item>
            <title>doc:rrdtool</title>
            <link>http://www.collilieux.info/doc/rrdtool</link>
            <description>
&lt;h1 class=&quot;sectionedit56&quot;&gt;&lt;a name=&quot;comprendre_rrdtool&quot; id=&quot;comprendre_rrdtool&quot;&gt;Comprendre rrdtool&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
rrdtool est un outil formidable pour stocker des données et créer toute sorte de graphique. Je n&amp;#039;essayerai pas de rentrer dans les détails de l&amp;#039;utilisation de l&amp;#039;outil mais tenterai d&amp;#039;expliquer quelques points qui peuvent paraître obscurs et qui m&amp;#039;ont fait gigoter le neurone.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT56 SECTION &quot;Comprendre rrdtool&quot; [2-317] --&gt;
&lt;h2 class=&quot;sectionedit57&quot;&gt;&lt;a name=&quot;creation&quot; id=&quot;creation&quot;&gt;Création&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Pour commencer, créons un fichier qui servira ensuite dans les exemples.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT57 SECTION &quot;Création&quot; [318-415] --&gt;
&lt;h3 class=&quot;sectionedit58&quot;&gt;&lt;a name=&quot;fichier_d_exemple&quot; id=&quot;fichier_d_exemple&quot;&gt;Fichier d&amp;#039;exemple&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;rrdtool create gauge.rrd \
     --start $(date -d&amp;#039;1 march 2010 00:00:00&amp;#039; +%s) \
     --step 300 \
     DS:donnee:GAUGE:600:U:U \
     RRA:MIN:0.5:1:40 \
     RRA:MAX:0.5:1:40 \
     RRA:AVERAGE:0.5:1:40 \
     RRA:MIN:0.5:2:40 \
     RRA:MAX:0.5:2:40 \
     RRA:AVERAGE:0.5:2:40&lt;/pre&gt;

&lt;p&gt;
Le fichier s&amp;#039;appelle &lt;code&gt;gauge.rrd&lt;/code&gt;, la première donnée est attendue le 1er mars à 00:00:00 (cette date sera convertie en seconde depuis le 1er janvier 1970 par la commande &lt;code&gt;date&lt;/code&gt;). On attend une donnée toutes les 300 secondes soient 5 minutes.
&lt;/p&gt;

&lt;p&gt;
Dans le fichier, nous ne définissons qu&amp;#039;une seule source de données (DS = Data Source) que l&amp;#039;on appelle de manière originale : donnee. Il pourrait y avoir plusieurs DS dans le fichier. &lt;code&gt;GAUGE&lt;/code&gt; définit une donnée qui est une valeur à l&amp;#039;instant t (une température, un nombre de personnes dans une salle). Les autres types de données seront expliqués ci-après.
&lt;/p&gt;

&lt;p&gt;
Ensuite, viennent les RRA (Round Robin Archive) que je détaillerai plus loin.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT58 SECTION &quot;Fichier d'exemple&quot; [416-1441] --&gt;
&lt;h3 class=&quot;sectionedit59&quot;&gt;&lt;a name=&quot;les_types_de_donnees&quot; id=&quot;les_types_de_donnees&quot;&gt;Les types de données&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
rrdtool connait plusieurs type de données :
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;GAUGE&lt;/code&gt; : une température, un nombre de personnes dans un pièce, un taux d&amp;#039;utilisation CPU&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;COUNTER&lt;/code&gt; : un compteur comme un nombre de kilomètres parcourus, un nombre d&amp;#039;octets transférés par une interface réseau. Un compteur augmente toujours dans le temps sauf quand il « déborde » (un compteur sur 32 bits passe à 0 après la valeur 4294967295). Si après s&amp;#039;être approché d&amp;#039;un nombre de 32 bits ou 64 bits, le compteur repart de 0 rrdtool le détecte et sait le gérer.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
La valeur du &lt;code&gt;COUNTER&lt;/code&gt; est stockée dans la base comme une valeur par seconde c&amp;#039;est à dire la valeur n - valeur n-1 / le temps entre les 2 valeurs. Exemple : à 14h00, le compteur de la voiture affiche 1200km ; à 14h05, il affiche 1203km ; à 14h05, rrdtool stockera la valeur 1205-1200/300 soient 0.01 (km/s soit 1m/s mais l&amp;#039;unité n&amp;#039;est pas stockée).
La vérification de débordement est notamment utile pour les compteurs d&amp;#039;interfaces réseau codés sur 32bits ou 64bits.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;DERIVE&lt;/code&gt; : comme le compteur sans la vérification de débordement.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;ABSOLUTE&lt;/code&gt; : je n&amp;#039;en ai jamais eu l&amp;#039;utilité.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;COMPUTE&lt;/code&gt; : je n&amp;#039;en ai jamais eu l&amp;#039;utilité.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Pour chaque donnée, il est possible de définir un minimum et un maximum. Dans notre exemple, U:U signifie que les minimum et le maximum sont inconnus (Unkown). Si une valeur n&amp;#039;est pas comprise entre minimum et maximum, elle sera considérée comme erronée et « Unknown » sera stocké dans la base.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT59 SECTION &quot;Les types de données&quot; [1442-2977] --&gt;
&lt;h3 class=&quot;sectionedit60&quot;&gt;&lt;a name=&quot;min_max_average&quot; id=&quot;min_max_average&quot;&gt;min, max, average&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Lors de la création de la base de données tournante, on définit des RRA (Round Robin Archive). Reprenons l&amp;#039;exemple précédent :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;     RRA:MIN:0.5:1:40
     RRA:MAX:0.5:1:40
     RRA:AVERAGE:0.5:1:40
     RRA:MIN:0.5:4:40
     RRA:MAX:0.5:4:40
     RRA:AVERAGE:0.5:4:40&lt;/pre&gt;

&lt;p&gt;
La première base (RRA) contiendra la valeur minimale (MIN), le nombre de valeurs absentes après lequel la donnée devient inconnue, le nombre de points à prendre pour calculer la valeur et le nombre de valeurs. 
&lt;/p&gt;

&lt;p&gt;
Avec cette explication, nous voilà bien avancés …
&lt;/p&gt;

&lt;p&gt;
La plupart des informations ci-dessous n&amp;#039;ont de sens que lorsque que rrdtool va dégrader la finesse des données. Dans les 3 premières RRA, on stocke une donnée toutes les 1*300 secondes et on garde 40 données. Ces valeurs couvrent donc 200 minutes.
&lt;/p&gt;

&lt;p&gt;
Dans les 3 RRA suivantes, les choses changent légèrement. Ici, on prend 2 valeurs collectées pour faire un point et on garde 40 points soient 2*300 secondes * 40 c&amp;#039;est-à-dire 400 minutes. rrdtool va donc prendre 2 valeurs pour en faire une seule et c&amp;#039;est là que MIN, MAX et AVERAGE prennent tout leur sens.
&lt;/p&gt;

&lt;p&gt;
Avec MIN, rrdtool stockera le MINimum des 2 valeurs, avec MAX, il stockera le MAXimum des 2 valeurs et avec AVERAGE, il fera la moyenne de ces 2 valeurs. Il est également possible d&amp;#039;utiliser LAST pour ne garder que la dernière valeur de la série (utilité ?).
&lt;/p&gt;

&lt;p&gt;
Exemple avec notre fichier mis à jour avec les valeurs :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ rrdtool update gauge.rrd \
        $(date -d&amp;#039;1 march 2010 00:05&amp;#039; +%s):100 \
        $(date -d&amp;#039;1 march 2010 00:10&amp;#039; +%s):0 \
        $(date -d&amp;#039;1 march 2010 00:15&amp;#039; +%s):100 \
        $(date -d&amp;#039;1 march 2010 00:20&amp;#039; +%s):0 \
        [...]&lt;/pre&gt;

&lt;p&gt;
Pour automatiser la mise jour, peut utiliser une boucle en BASH avec la commande &lt;code&gt;seq&lt;/code&gt; pour incrémenter les valeurs.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;i&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;modulo&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;add&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; temps &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;seq&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;date&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'1 march 2010 00:05:00'&lt;/span&gt; +&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;date&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'1 march 2010 23:59:00'&lt;/span&gt; +&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
    rrdtool update gauge.rrd &lt;span class=&quot;re1&quot;&gt;$temps&lt;/span&gt;:$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$modulo&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;re2&quot;&gt;i&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$i&lt;/span&gt;+&lt;span class=&quot;re1&quot;&gt;$add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Pour la série définie par &lt;code&gt;RRA:MIN:0.5:2:10&lt;/code&gt;, rrdtool stockera :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ rrdtool dump gauge.rrd
[...]
&amp;lt;!-- 2010-03-01 17:20:00 CET / 1267460400 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;0.0000000000e+00&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
&amp;lt;!-- 2010-03-01 17:30:00 CET / 1267461000 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;0.0000000000e+00&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
&amp;lt;!-- 2010-03-01 17:40:00 CET / 1267461600 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;0.0000000000e+00&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
[...]&lt;/pre&gt;

&lt;p&gt;
Pour chaque duo de données, rrdtool a gardé la plus petite.
&lt;/p&gt;

&lt;p&gt;
Pour la série &lt;code&gt;RRA:MAX:0.5:2:10&lt;/code&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ rrdtool dump gauge.rrd
[...]
&amp;lt;!-- 2010-03-01 17:20:00 CET / 1267460400 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;1.0000000000e+02&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
&amp;lt;!-- 2010-03-01 17:30:00 CET / 1267461000 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;1.0000000000e+02&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
&amp;lt;!-- 2010-03-01 17:40:00 CET / 1267461600 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;1.0000000000e+02&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
&amp;lt;!-- 2010-03-01 17:50:00 CET / 1267462200 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;1.0000000000e+02&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
[...]&lt;/pre&gt;

&lt;p&gt;
Pour la série &lt;code&gt;RRA:AVERAGE:0.5:2:10&lt;/code&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ rrdtool dump gauge.rrd
[...]
&amp;lt;!-- 2010-03-01 17:20:00 CET / 1267460400 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;5.0000000000e+01&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
&amp;lt;!-- 2010-03-01 17:30:00 CET / 1267461000 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;5.0000000000e+01&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
&amp;lt;!-- 2010-03-01 17:40:00 CET / 1267461600 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;5.0000000000e+01&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
&amp;lt;!-- 2010-03-01 17:50:00 CET / 1267462200 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;5.0000000000e+01&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
[...]&lt;/pre&gt;

&lt;p&gt;
La définition des RRA est fondamentale car c&amp;#039;est de là que découle toutes les données stockées dans les fichiers rrd. Quand on a bien compris cela, on évite de perdre du temps à interpréter de mauvaises données &lt;img src=&quot;http://www.collilieux.info/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;-)&quot; /&gt;.
&lt;/p&gt;

&lt;p&gt;
Je n&amp;#039;ai pas présenté le cas mais si 0.5 donnée avait été absente (donc 1 sur 2 dans l&amp;#039;exemple), le résultat de MIN, MAX ou AVERAGE auraient été des valeurs inconnues (UNKNOWN).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT60 SECTION &quot;min, max, average&quot; [2978-6729] --&gt;
&lt;h2 class=&quot;sectionedit61&quot;&gt;&lt;a name=&quot;mise_a_jour_de_la_base&quot; id=&quot;mise_a_jour_de_la_base&quot;&gt;Mise à jour de la base&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Là encore, il peut y avoir un piège &lt;img src=&quot;http://www.collilieux.info/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;-)&quot; /&gt;. Dans le fichier d&amp;#039;exemple ci-dessus, rrdttool attend une valeur toutes les 5 minutes à la seconde près : 00:00:00, 00:05:00, 00:10:00, …, 03:00:00, etc. Que se passe-t-il si une valeur est entrée à 00:11:15 ? rrdtool prendra cette valeur mais va l&amp;#039;interpoler et le résultat risque de ne pas être ce que vous attendez …
&lt;/p&gt;

&lt;p&gt;
En effet, si à 00:11:15, vous donnez la valeur 10 à rrdtool, il conservera la valeur 9,xx.
&lt;/p&gt;

&lt;p&gt;
Rien de mieux qu&amp;#039;un exemple en créant le même fichier que précédemment mis à jour avec les mêmes valeurs mais décalées d&amp;#039;une minute (alternativement 10 et 2) :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;rrdtool update gauge.rrd \
        $(date -d&amp;#039;1 march 2010 00:06&amp;#039; +%s):10 \
        $(date -d&amp;#039;1 march 2010 00:11&amp;#039; +%s):2 \
        $(date -d&amp;#039;1 march 2010 00:16&amp;#039; +%s):10 \
        $(date -d&amp;#039;1 march 2010 00:21&amp;#039; +%s):2 \&lt;/pre&gt;

&lt;p&gt;
ce qui nous donne avec une boucle :
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;i&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;modulo&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;add&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; temps &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;seq&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;date&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'1 march 2010 00:06:00'&lt;/span&gt; +&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;date&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'1 march 2010 03:25:00'&lt;/span&gt; +&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$modulo&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; == &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
        &lt;span class=&quot;re2&quot;&gt;nb&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;
        &lt;span class=&quot;re2&quot;&gt;nb&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; rrdtool update gauge.rrd &lt;span class=&quot;re1&quot;&gt;$temps&lt;/span&gt;:&lt;span class=&quot;re1&quot;&gt;$nb&lt;/span&gt;
    rrdtool update gauge.rrd &lt;span class=&quot;re1&quot;&gt;$temps&lt;/span&gt;:&lt;span class=&quot;re1&quot;&gt;$nb&lt;/span&gt;
    &lt;span class=&quot;re2&quot;&gt;i&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$i&lt;/span&gt;+&lt;span class=&quot;re1&quot;&gt;$add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Si on extrait les données, on obtient d&amp;#039;autres valeurs qui sont le résultat du traitement de &lt;code&gt;rrdtool&lt;/code&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ rrdtool dump gauge.rrd
[...]
&amp;lt;!-- 2010-03-01 00:05:00 CET / 1267398300 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;2.0000000000e+00&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
&amp;lt;!-- 2010-03-01 00:10:00 CET / 1267398600 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;8.4000000000e+00&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
&amp;lt;!-- 2010-03-01 00:15:00 CET / 1267398900 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;3.6000000000e+00&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
&amp;lt;!-- 2010-03-01 00:20:00 CET / 1267399200 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;8.4000000000e+00&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
&amp;lt;!-- 2010-03-01 00:25:00 CET / 1267399500 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;3.6000000000e+00&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
&amp;lt;!-- 2010-03-01 00:30:00 CET / 1267399800 --&amp;gt; &amp;lt;row&amp;gt;&amp;lt;v&amp;gt;8.4000000000e+00&amp;lt;/v&amp;gt;&amp;lt;/row&amp;gt;
[...]&lt;/pre&gt;

&lt;p&gt;
Pour rrdtool, s&amp;#039;il y avait 10 personnes dans la pièce à 00:11:00 et 2 à 00:16:00, il y en avait 8,4 à 00:10:00 et 3,6 à 00:15:00. Quand on compte des personnes, un chiffre à virgule est toujours gênant, la personne est dans la pièce, ou pas. C&amp;#039;est l&amp;#039;interprétation mathématique de rrdtool.
&lt;/p&gt;

&lt;p&gt;
Pour éviter les virgules, il faut donc bien faire attention à la date de la première valeur et aux dates de mises à jour prévues. Dans la plupart des cas d&amp;#039;utilisation de rrdtool ce comportement n&amp;#039;est pas gênant … quand on le connaît !
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT61 SECTION &quot;Mise à jour de la base&quot; [6730-9204] --&gt;
&lt;h2 class=&quot;sectionedit62&quot;&gt;&lt;a name=&quot;rrdtool_dessine-moi_un_graphique&quot; id=&quot;rrdtool_dessine-moi_un_graphique&quot;&gt;rrdtool, dessine-moi un graphique&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Avec les valeurs de début et de fin choisies, rrdtool peut utiliser les valeurs sur 5 minutes :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;    rrdtool graph rrd_05min.png \
        --start $(date -d&amp;#039;1 march 2010 20:35&amp;#039; +%s) \
        --end $(date -d&amp;#039;1 march 2010 23:55&amp;#039; +%s) \
        --width 800 \
        --height 200 \
        DEF:ds0min=gauge.rrd:donnee:MIN \
        DEF:ds0max=gauge.rrd:donnee:MAX \
        DEF:ds0avg=gauge.rrd:donnee:AVERAGE \
        LINE2:ds0max#FF0000:&amp;quot;max 5 min &amp;quot; \
        GPRINT:ds0max:MIN:&amp;quot;Min\: %6.2lf &amp;quot; \
        GPRINT:ds0max:AVERAGE:&amp;quot;Avg\: %6.2lf &amp;quot; \
        GPRINT:ds0max:MAX:&amp;quot;Max\: %6.2lf &amp;quot; \
        GPRINT:ds0max:LAST:&amp;quot;Last\: %6.2lf \l&amp;quot; \
        LINE2:ds0avg#00FF00:&amp;quot;moy 5 min &amp;quot; \
        GPRINT:ds0avg:MIN:&amp;quot;Min\: %6.2lf &amp;quot; \
        GPRINT:ds0avg:AVERAGE:&amp;quot;Avg\: %6.2lf &amp;quot; \
        GPRINT:ds0avg:MAX:&amp;quot;Max\: %6.2lf &amp;quot; \
        GPRINT:ds0avg:LAST:&amp;quot;Last\: %6.2lf \l&amp;quot; \
        LINE2:ds0min#0000FF:&amp;quot;min 5 min &amp;quot; \
        GPRINT:ds0min:MIN:&amp;quot;Min\: %6.2lf &amp;quot; \
        GPRINT:ds0min:AVERAGE:&amp;quot;Avg\: %6.2lf &amp;quot; \
        GPRINT:ds0min:MAX:&amp;quot;Max\: %6.2lf &amp;quot; \
        GPRINT:ds0min:LAST:&amp;quot;Last\: %6.2lf \l&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Les opération MIN, MAX, AVERAGE et LAST concernent la série, le RRA. Dans la légende, on affichera donc le MIN de la série de données qui contient les MAX, la moyenne (AVG) des MAX, le MAX du MAX et la dernière valeur du MAX. Comme décrites auparavant, les 3 courbes se superposent car tous les calculs sont faits sur une seule valeur.
&lt;/p&gt;

&lt;p&gt;
Dans cet exemple, rrdtool utilisera les données sur 10 minutes car il n&amp;#039;a pas stocker suffisamment de données sur 5 minutes. Les MIN, MAX et AVG sont donc calculés sur 2 valeurs. Dans la légende, on affiche de nouveau le MIN, MAX, AVG et LAST de chaque série MIN, MAX, AVG.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;    rrdtool graph rrd_10min.png \
        --start $(date -d&amp;#039;1 march 2010 17:20&amp;#039; +%s) \
        --end $(date -d&amp;#039;1 march 2010 23:50&amp;#039; +%s) \
        --width 800 \
        --height 200 \
        DEF:ds1min=gauge.rrd:donnee:MIN \
        DEF:ds1max=gauge.rrd:donnee:MAX \
        DEF:ds1avg=gauge.rrd:donnee:AVERAGE \
        LINE2:ds1max#FF0000:&amp;quot;max 10 min&amp;quot; \
        GPRINT:ds1max:MIN:&amp;quot;Min\: %6.2lf &amp;quot; \
        GPRINT:ds1max:AVERAGE:&amp;quot;Moy\: %6.2lf &amp;quot; \
        GPRINT:ds1max:MAX:&amp;quot;Max\: %6.2lf \l&amp;quot; \
        LINE2:ds1avg#00FF00:&amp;quot;moy 10 min&amp;quot; \
        GPRINT:ds1avg:MIN:&amp;quot;Min\: %6.2lf &amp;quot; \
        GPRINT:ds1avg:AVERAGE:&amp;quot;Moy\: %6.2lf &amp;quot; \
        GPRINT:ds1avg:MAX:&amp;quot;Max\: %6.2lf \l&amp;quot; \
        LINE2:ds1min#0000FF:&amp;quot;min 10 min&amp;quot; \
        GPRINT:ds1min:MIN:&amp;quot;Min\: %6.2lf &amp;quot; \
        GPRINT:ds1min:AVERAGE:&amp;quot;Moy\: %6.2lf &amp;quot; \
        GPRINT:ds1min:MAX:&amp;quot;Max\: %6.2lf \l&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Pour terminer, si on souhaite afficher un graphe de 2000 points, le graphique devra faire au moins 2000 pixels… sinon rrdtool ne pourra pas afficher tous les points. Pour afficher un graphe qui contient plus de points que de pixels, rrdtool agrège les données comme il le fait dans le stockage des données.
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
 — &lt;em&gt;Le 22/11/2011 – Sylvain Collilieux – Ce texte est sous licence &lt;a href=&quot;https://creativecommons.org/licenses/by/2.0/fr/#&quot; class=&quot;urlextern&quot; title=&quot;https://creativecommons.org/licenses/by/2.0/fr/#&quot;  rel=&quot;nofollow&quot;&gt;Creative Commons Attribution&lt;/a&gt;&lt;/em&gt; &lt;a href=&quot;https://creativecommons.org/licenses/by/2.0/fr/&quot; class=&quot;media&quot; title=&quot;https://creativecommons.org/licenses/by/2.0/fr/&quot;  rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://www.collilieux.info/lib/exe/fetch.php?hash=b4307c&amp;amp;media=http%3A%2F%2Fstatic.collilieux.net%2Fcc-by-badge.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://www.collilieux.info/tag/rrdtool?do=showtag&amp;amp;tag=rrdtool&quot; class=&quot;wikilink1&quot; title=&quot;tag:rrdtool&quot; rel=&quot;tag&quot;&gt;rrdtool&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT62 SECTION &quot;rrdtool, dessine-moi un graphique&quot; [9205-] --&gt;</description>
            <author>sylvain</author>
        <category>rrdtool</category>
            <pubDate>Sun, 08 Jan 2012 15:17:46 +0100</pubDate>
        </item>
        <item>
            <title>accueil</title>
            <link>http://www.collilieux.info/accueil</link>
            <description>
&lt;h1 class=&quot;sectionedit63&quot;&gt;&lt;a name=&quot;bienvenue&quot; id=&quot;bienvenue&quot;&gt;Bienvenue !&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Ce wiki est à la fois un pense-bête, une modeste source de &lt;a href=&quot;http://www.collilieux.info/doc&quot; class=&quot;wikilink1&quot; title=&quot;doc&quot;&gt;documentation&lt;/a&gt;, un &lt;a href=&quot;http://www.collilieux.info/blog&quot; class=&quot;wikilink1&quot; title=&quot;blog&quot;&gt;blog&lt;/a&gt; délaissé, etc. Le tout est propulsé par le logiciel libre &lt;a href=&quot;http://www.dokuwiki.org/dokuwiki&quot; class=&quot;urlextern&quot; title=&quot;http://www.dokuwiki.org/dokuwiki&quot;  rel=&quot;nofollow&quot;&gt;dokuwiki&lt;/a&gt;. Vous pouvez également me retrouver en version &lt;a href=&quot;http://status.collilieux.net/sylvain&quot; class=&quot;urlextern&quot; title=&quot;http://status.collilieux.net/sylvain&quot;  rel=&quot;nofollow&quot;&gt;microblog&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;script src='http://www.collilieux.info/lib/plugins/rssticker/rssticker.js' type='text/javascript'&gt;&lt;/script&gt;&lt;div class=&quot;rssticker&quot; align='left'&gt;&lt;script type='text/javascript' charset='UTF-8'&gt;document.write('&lt;div class=&quot;rsshead&quot;&gt;Mini blog:&lt;/div&gt;')
new rssticker_ajax('http://status.collilieux.net/api/statuses/user_timeline/sylvain.rss', 240, 'rssbox', 'rssclass', 4500, 'date')&lt;/script&gt;&lt;/div&gt;&lt;div class=&quot;clearer&quot;&gt;&lt;/div&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT63 SECTION &quot;Bienvenue !&quot; [2-439] --&gt;
&lt;h2 class=&quot;sectionedit64&quot;&gt;&lt;a name=&quot;les_dernieres_documentations_creees_ou_modifiees&quot; id=&quot;les_dernieres_documentations_creees_ou_modifiees&quot;&gt;Les dernières documentations créées ou modifiées&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;hr /&gt;
&lt;p id='yourip' class='ipv4'&gt;IPv4 connection from &lt;a href='http://www.sixxs.net/tools/ipv6calc/'&gt;38.107.179.230&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;!-- EDIT64 SECTION &quot;Les dernières documentations créées ou modifiées&quot; [440-] --&gt;</description>
            <author>sylvain</author>
            <pubDate>Fri, 06 Jan 2012 00:43:14 +0100</pubDate>
        </item>
        <item>
            <title>doc:seahorse_details.png</title>
            <link>http://www.collilieux.info/?image=doc%3Aseahorse_details.png&amp;ns=doc&amp;do=media</link>
            <description>&lt;img src=&quot;/_media/doc/seahorse_details.png?w=494&amp;h=284t=1325794971&quot; alt=&quot;doc:seahorse_details.png&quot; /&gt;</description>
            <author>sylvain</author>
        <category>doc</category>
            <pubDate>Thu, 05 Jan 2012 21:22:51 +0100</pubDate>
        </item>
        <item>
            <title>doc:seahorse_cle.png</title>
            <link>http://www.collilieux.info/?image=doc%3Aseahorse_cle.png&amp;ns=doc&amp;do=media</link>
            <description>&lt;img src=&quot;/_media/doc/seahorse_cle.png?w=494&amp;h=284t=1325794961&quot; alt=&quot;doc:seahorse_cle.png&quot; /&gt;</description>
            <author>sylvain</author>
        <category>doc</category>
            <pubDate>Thu, 05 Jan 2012 21:22:41 +0100</pubDate>
        </item>
        <item>
            <title>doc:peace.jpg</title>
            <link>http://www.collilieux.info/?image=doc%3Apeace.jpg&amp;ns=doc&amp;do=media</link>
            <description>&lt;img src=&quot;/_media/doc/peace.jpg?w=410&amp;h=500t=1299246842&quot; alt=&quot;doc:peace.jpg&quot; /&gt;</description>
            <author>sylvain</author>
        <category>doc</category>
            <pubDate>Fri, 04 Mar 2011 14:54:03 +0100</pubDate>
        </item>
        <item>
            <title>doc:941.gpx</title>
            <link>http://www.collilieux.info/?image=doc%3A941.gpx&amp;ns=doc&amp;do=media</link>
            <description></description>
            <author>sylvain</author>
        <category>doc</category>
            <pubDate>Fri, 04 Mar 2011 14:44:20 +0100</pubDate>
        </item>
        <item>
            <title>libre:haiti_apres.png</title>
            <link>http://www.collilieux.info/?image=libre%3Ahaiti_apres.png&amp;ns=libre&amp;do=media</link>
            <description>&lt;img src=&quot;/_media/libre/haiti_apres.png?w=382&amp;h=431t=1263763163&quot; alt=&quot;libre:haiti_apres.png&quot; /&gt;</description>
            <author>sylvain</author>
        <category>libre</category>
            <pubDate>Sun, 17 Jan 2010 22:19:23 +0100</pubDate>
        </item>
        <item>
            <title>libre:haiti_avant.jpg</title>
            <link>http://www.collilieux.info/?image=libre%3Ahaiti_avant.jpg&amp;ns=libre&amp;do=media</link>
            <description>&lt;img src=&quot;/_media/libre/haiti_avant.jpg?w=223&amp;h=298t=1263763143&quot; alt=&quot;libre:haiti_avant.jpg&quot; /&gt;</description>
            <author>sylvain</author>
        <category>libre</category>
            <pubDate>Sun, 17 Jan 2010 22:19:03 +0100</pubDate>
        </item>
        <item>
            <title>blog:2010:bisonbison_cc-by-nc-sa.jpg</title>
            <link>http://www.collilieux.info/?image=blog%3A2010%3Abisonbison_cc-by-nc-sa.jpg&amp;ns=blog%3A2010&amp;do=media</link>
            <description>&lt;img src=&quot;/_media/blog/2010/bisonbison_cc-by-nc-sa.jpg?w=499&amp;h=375t=1262815300&quot; alt=&quot;blog:2010:bisonbison_cc-by-nc-sa.jpg&quot; /&gt;</description>
            <author>sylvain</author>
        <category>blog:2010</category>
            <pubDate>Wed, 06 Jan 2010 23:01:41 +0100</pubDate>
        </item>
        <item>
            <title>doc:client_key_usage.png</title>
            <link>http://www.collilieux.info/?image=doc%3Aclient_key_usage.png&amp;ns=doc&amp;do=media</link>
            <description>&lt;img src=&quot;/_media/doc/client_key_usage.png?w=448&amp;h=500t=1259183868&quot; alt=&quot;doc:client_key_usage.png&quot; /&gt;</description>
            <author>sylvain</author>
        <category>doc</category>
            <pubDate>Wed, 25 Nov 2009 22:17:48 +0100</pubDate>
        </item>
        <item>
            <title>doc:certificate_export.png</title>
            <link>http://www.collilieux.info/?image=doc%3Acertificate_export.png&amp;ns=doc&amp;do=media</link>
            <description>&lt;img src=&quot;/_media/doc/certificate_export.png?w=500&amp;h=339t=1259183646&quot; alt=&quot;doc:certificate_export.png&quot; /&gt;</description>
            <author>sylvain</author>
        <category>doc</category>
            <pubDate>Wed, 25 Nov 2009 22:14:12 +0100</pubDate>
        </item>
        <item>
            <title>doc:key_export.png</title>
            <link>http://www.collilieux.info/?image=doc%3Akey_export.png&amp;ns=doc&amp;do=media</link>
            <description>&lt;img src=&quot;/_media/doc/key_export.png?w=419&amp;h=421t=1259183188&quot; alt=&quot;doc:key_export.png&quot; /&gt;</description>
            <author>sylvain</author>
        <category>doc</category>
            <pubDate>Wed, 25 Nov 2009 22:06:28 +0100</pubDate>
        </item>
    </channel>
</rss>

