Warning: Parameter 1 to behaviorsPagesStatiques::addTplPath() expected to be a reference, value given in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php on line 304

Warning: Cannot modify header information - headers already sent by (output started at /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php:304) in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/libs/clearbricks/common/lib.http.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php:304) in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/libs/clearbricks/common/lib.http.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php:304) in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/libs/clearbricks/common/lib.http.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php:304) in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/libs/clearbricks/common/lib.http.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php:304) in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/public/lib.urlhandlers.php on line 85

Warning: Cannot modify header information - headers already sent by (output started at /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/core/class.dc.core.php:304) in /home/flyounet/dev.flyou.net/dotclear-2.2.3/inc/libs/clearbricks/common/lib.http.php on line 273
Flyou.net [Dev] : Développements - Tag - Linux 2017-05-04T04:41:02+02:00 Flyounet urn:md5:69f091255befd3717a2b2e45b9aa3688 Dotclear Comment ajouter un fichier au début d'un autre en Shell urn:md5:468a6a0e517f23f8fa61a5a237a4d921 2012-11-09T14:00:00+01:00 2012-11-09T15:10:33+01:00 Flyounet Documentations bashkshLinuxShellUnix <p>Voilà le topo, vous faites du <a href="http://dev.flyou.net/tag/Shell">Shell</a> (si si, y en a) et vous devez pour d'obscures raisons ajouter le contenu d'un fichier (appelons le <code>aCopier.txt</code>) au début d'un autre (appelons le <code>destination.txt</code>).</p> <p>Par exemple&nbsp;:</p> <pre>fly@dtc:~$ cat aCopier.txt # Ho la belle ligne que je me dois de copier au début d'un autre fichier # Entete,id,securities,ftt(French_Tax_Tobin) fly@dtc:~$ cat destination.txt bnp,7553,37426,130054874 cmcic,425,1271,99412364 ca,1103,17345,94577741 sg,211,914,4113647</pre> <p>Souvent les gens prennent le fichier destination, le copient à la fin du fichier à copier et remplace le fichier destination, ce qui se traduit souvent par un&nbsp;:</p> <pre>fly@dtc:~$ cat destination.txt &gt;&gt; aCopier.txt &amp;&amp; mv aCopier.txt destination.txt fly@dtc:~$ cat destination.txt # Ho la belle ligne que je me dois de copier au début d'un autre fichier # Entete,id,securities,ftt(French_Tax_Tobin) bnp,7553,37426,130054874 cmcic,425,1271,99412364 ca,1103,17345,94577741 sg,211,914,4113647</pre> <p>J'y vois personnellement deux inconvénients&nbsp;:</p> <ul> <li>L'opération n'est pas atomique<sup>[<a href="http://dev.flyou.net/post/2012/11/09/Comment-ajouter-un-fichier-au-d%C3%A9but-d-un-autre-en-Shell#pnote-44-1" id="rev-pnote-44-1">1</a>]</sup></li> <li>On perd le fichier <code>aCopier.txt</code> dans l'opération.</li> </ul> <p>Donc pour moi, la solution est plutôt&nbsp;: <code>echo "$(&lt;aCopier.txt)" "$(&lt;destination.txt)" &gt; destination.txt</code></p> <p>Non seulement, cela a l'avantage d'être du <a href="http://dev.flyou.net/tag/Shell">Shell</a> only (<a href="http://dev.flyou.net/tag/bash">Bash</a> ou <a href="http://dev.flyou.net/tag/ksh">KSH</a>), mais il me reste le fichier à copier...</p> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2012/11/09/Comment-ajouter-un-fichier-au-d%C3%A9but-d-un-autre-en-Shell#rev-pnote-44-1" id="pnote-44-1">1</a>] Par atomique, j'entends qu'il y a plusieurs étapes successives et donc que pour un retour arrière, c'est plus embettant. D'autant plus à cause du point suviant...</p></div> http://dev.flyou.net/post/2012/11/09/Comment-ajouter-un-fichier-au-d%C3%A9but-d-un-autre-en-Shell#comment-form http://dev.flyou.net/feed/atom/comments/44 RFC 1924 : IPv6 compression (A Compact Representation of IPv6 Addresses) urn:md5:516f095dae50a45824b1cda00b57b7f8 2011-08-29T23:53:00+02:00 2011-09-05T10:06:36+02:00 Flyounet Outils & Développements bashLinuxRFCShellUnix <p>You know how it works, your wife left you with childrens to see her mother... And you're alone for the entire week end. So you read April Fool's <acronym title="Request For Coment">RFC</acronym>, and you decide to implement one for fun.</p> <h3>What is it about ?</h3> <p>First of all, the <acronym title="Request For Coment">RFC</acronym>, i choose, was the <a href="http://tools.ietf.org/rfc/rfc1924.txt" hreflang="en" title="The RFC on IETF site">1924</a>. To make it simple, it's only a sort of <em>How to compress IPv6</em> to store them more efficiently.</p> <pre> $ ./ipv6Converter.sh -I ab:CD:ef:01:23:45:67:89 The IPv6 you enter is : [ab:CD:ef:01:23:45:67:89] --------------------------------------------------------- IPv6 expanded is : [00ab:00cd:00ef:0001:0023:0045:0067:0089] IPv6 shrinked (RFC5952) is : [ab:cd:ef:1:23:45:67:89] IPv6 decimal format is : 887899004871704238012413915815149705 IPv6 compressed (RFC1924) is : Gk+pw{*-scXTvbLbnhP </pre> <h3>More info ?</h3> <p><a href="http://code.flyou.net/trac/wiki/ipv6Converter.sh" hreflang="en" title="Wiki article">ipv6Converter.sh</a> on Trac.</p> <h3>Download</h3> <p><del>v0.03</del><sup>[<a href="http://dev.flyou.net/post/2011/08/29/RFC-1924-%3A-IPv6-compression-%28A-Compact-Representation-of-IPv6-Addresses%29#pnote-37-1" id="rev-pnote-37-1">1</a>]</sup><br /> <a href="http://dev.flyou.net/public/rfc1924/rfc1924-ipv6Converter_v0.04.tar.bz2">v0.04</a> (SHA1SUM : 63f5f5abd9b9d8fdb5556b284a254bca3ed64920)</p> <h3>Pre-requisites</h3> <ul> <li>Bash 4 minimum</li> <li>your happyness</li> </ul> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2011/08/29/RFC-1924-%3A-IPv6-compression-%28A-Compact-Representation-of-IPv6-Addresses%29#rev-pnote-37-1" id="pnote-37-1">1</a>] A little bug forced me to release v0.04...</p></div> http://dev.flyou.net/post/2011/08/29/RFC-1924-%3A-IPv6-compression-%28A-Compact-Representation-of-IPv6-Addresses%29#comment-form http://dev.flyou.net/feed/atom/comments/37 Quel est le meilleur moyen pour savoir le nom d'un fichier pointé par un lien ? urn:md5:11a558b4cec36ada3f7b317536eafedb 2010-05-27T23:54:00+02:00 2010-05-28T00:15:24+02:00 Flyounet Documentations bashkshLinuxScriptShellsshUnix <p>Vaste question qui ne me semble reposer que sur 3 réponses&nbsp;:</p> <ul> <li>L'utilisation de <code>stat</code>,</li> <li>L'utilisation de <code>file</code>,</li> <li>L'utilisation de <code>readlink</code>.</li> </ul> <h5>Utilisons <code>stat</code> :<a name="stat"></a></h5> <pre>fly@Capote:~/tmp$ stat /tmp/totoz File: `/tmp/totoz' -&gt; `/tmp/pipo' Size: 40 Blocks: 0 IO Block: 4096 lien symbolique Device: 808h/2056d Inode: 3744 Links: 1 Access: (0777/lrwxrwxrwx) Uid: ( 1000/ fly) Gid: ( 1000/ fly) Access: 2010-05-27 23:42:00.590730266 +0200 Modify: 2010-05-26 23:34:46.978029853 +0200 Change: 2010-05-26 23:34:46.978029853 +0200</pre> <p>On constate que le nom du <em>fichier</em> pointé est indiqué en première ligne. Donc, la ligne suivante devrait suffire&nbsp;:</p> <pre>fly@Capote:~/tmp$ a="$(stat /tmp/totoz | head -1 | awk '{print $NF}')" ; echo ${a} `/tmp/pipo'</pre> <p>C'est bien mais pas top avec les <em>quotes</em>, d'où l'astuce suivante&nbsp;:</p> <pre>fly@Capote:~/tmp$ i=${#a}; echo ${a:1:(($i-2))} /tmp/pipo</pre> <h5>Utilisons <code>file</code> :<a name="file"></a></h5> <pre>fly@mst:~/tmp$ file /tmp/totoz /tmp/totoz: symbolic link to `/tmp/pipo'</pre> <p>On constate maintenant qu'une seule ligne est retournée, mais il y a toujours ce problème de <em>quotes</em>. Donc, on résout de la même manière&nbsp;:</p> <pre>fly@mst:~/tmp$ a="$(stat /tmp/totoz | awk '{print $NF}')" ; echo ${a} `/tmp/pipo' fly@mst:~/tmp$ i=${#a}; echo ${a:1:(($i-2))} /tmp/pipo</pre> <h5>Utilisons <code>readlink</code> :<a name="readlink"></a></h5> <pre>fly@Capote:~/tmp$ readlink /tmp/totoz /tmp/pipo</pre> <p>Bon, ben voilà; finalement je le préfère ce petit <code>readlink</code> (et de loin)...</p> http://dev.flyou.net/post/2010/05/27/Quel-est-le-meilleur-moyen-pour-savoir-le-nom-d-un-fichier-point%C3%A9-par-un-lien#comment-form http://dev.flyou.net/feed/atom/comments/28 Java problem with FreePlane on Ubuntu 9.10 Karmic urn:md5:6125f6dc4056f95b1a8d27f13bd7f79c 2010-05-06T14:02:00+02:00 2010-05-06T14:03:45+02:00 Flyounet Informations Linux <p>If you have such a problem <code>ERROR: Your Java is not a derivative from Sun's code</code> when starting <a href="http://freeplane.sourceforge.net" hreflang="en">FreePlane</a> (or <a href="http://freemind.sourceforge.net" hreflang="en">FreeMind</a>), correct your java with the command :</p> <pre>/usr/sbin/update-alternatives --config java</pre> http://dev.flyou.net/post/2010/05/06/Java-problem-with-FreePlane-on-Ubuntu-9.10-Karmic#comment-form http://dev.flyou.net/feed/atom/comments/25 F01common.lib v0.28 urn:md5:36df6dad5e231dee988d2ac43182277f 2010-05-03T17:58:00+02:00 2010-05-03T18:12:47+02:00 Flyounet Outils & Développements bashF01common.libkshLinuxScriptShellUnix <p>Because I need it, I implement the <code>statusBar</code> <a href="http://dev.flyou.net/post/2010/05/03/F01common.lib-v0.28#FunctionList" hreflang="en">function</a>. <a href="http://dev.flyou.net/public/F01common.lib/v0.28/doc/F01_statusBar_01.png" title="Test statusBar 01"><img src="http://dev.flyou.net/public/F01common.lib/v0.28/doc/.F01_statusBar_01_m.jpg" alt="Test statusBar 01" style="display:block; margin:0 auto;" title="Test statusBar 01, mai 2010" /></a> <a href="http://dev.flyou.net/public/F01common.lib/v0.28/doc/F01_statusBar_02.png" title="Test statusBar 02"><img src="http://dev.flyou.net/public/F01common.lib/v0.28/doc/.F01_statusBar_02_m.jpg" alt="Test statusBar 02" style="display:block; margin:0 auto;" title="Test statusBar 02, mai 2010" /></a> I tested with KSH and Bash and it seems to work with both.</p> <h4>Changelog :<a name="ChangeLog"></a></h4> <pre>+ statusBar : generate the informations to have a status bar. eg. 0%....5%....10%.... and so on until 100%</pre> <h4>Variables &amp; Functions diagram :<a name="Schema"></a></h4> <p><img src="http://dev.flyou.net/public/F01common.lib/v0.28/doc/.common.lib_m.jpg" alt="common.lib.png" style="display:block; margin:0 auto;" title="Liste des variables et fonctions" /></p> <h4>Files are :<a name="FileList"></a></h4> <ul> <li><code>common.lib_v0.28.tar.bz2</code>&nbsp;: L'archive qui contient tous les fichiers,</li> <li><code>common.lib.README</code>&nbsp;: Une micro documentation,</li> <li><code>common.lib</code>&nbsp;: La librairie Shell,</li> <li><code>_common4bash.lib</code>&nbsp;: L'extension pour Bash de la fonction <code>textBox()</code>,</li> <li><code>doc/common.lib.mm</code>&nbsp;: La liste de fonctions et variables sous forme de fichier Free(Mind|Plane),</li> <li><code>doc/common.lib.png</code>&nbsp;: La liste de fonctions et variables sous forme de fichier image,</li> <li><code>test/libHelp.sh</code>&nbsp;: Un script de test qui retourne de l'aide sur les fonctions,</li> <li><code>test/test_common-lib.conf</code>&nbsp;: Un fichier de configuration pour exécuter le script de test,</li> <li><code>test/test_common-lib.sh</code>&nbsp;: Un script de test, qui exécute quasiment toutes les fonctions de la librairie.</li> </ul> <h5>MD5 files :<a name="Md5List"></a></h5> <pre>9fa4b288ecc8e77c4fc34e712191c738 _common4bash.lib a8483e625e5218b308230f6a1cbf3ef9 common.lib da48aa769eb642b15683dddf9df6b09c common.lib.README c1d1416cd585ba0bb4f676571a8d16c9 doc/common.lib.mm 92071c09cb37d37bcc2669d5d4461fae doc/common.lib.png d04d3958e604ffdd69d5387d6c95110f test/libHelp.sh 727d5784f66d1a3f73c60e6179e97ca0 test/test_common-lib.conf f69437db303a6cda03f7964dc007bd68 test/test_common-lib.sh 8f4700e95ca3f8d1aa6e6e25a23bb194 F01common.lib_v0.28.tar.bz2</pre> <h5>Sha1 files :<a name="Sha1List"></a></h5> <pre>c525977312841d164ff589621fed70310b23b9c9 _common4bash.lib 868d379be8e4d22618d9714fe736ebb7d2426216 common.lib 33a81e3d04be359c60b2b9b7c67d918881415e1c common.lib.README eae8091cc12cd768d00f827f893ac2284367144c doc/common.lib.mm fb5379fb12394a4094e98b70bf2a99986db0ea64 doc/common.lib.png f8f1bf4afb8e54ec122f5f6e67a8a0bba72e98c8 test/libHelp.sh c21039c426cf47f9c9e0cc6c36e67c6e458e1978 test/test_common-lib.conf 6494f41cfde70c9fc6a811c0e316ad864492a232 test/test_common-lib.sh 772236b0435bcc54ea812eecd879ea2b009efec2 F01common.lib_v0.28.tar.bz2</pre> <h4>Function list :<a name="FunctionList"></a></h4> <p>Have a look in the <a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26#FunctionList" hreflang="fr">previous note</a> (related to version <a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26">v0.26</a>)</p> <pre>#F01.25.02 #Function : statusBar, Print (or return) datas to make a status bar</pre> http://dev.flyou.net/post/2010/05/03/F01common.lib-v0.28#comment-form http://dev.flyou.net/feed/atom/comments/24 F01common.lib v0.27 urn:md5:6dc23ccfe5b0af2d0e857e66807927e2 2010-04-27T14:00:00+02:00 2010-05-03T18:14:18+02:00 Flyounet Outils & Développements bashF01common.libkshLinuxScriptShellUnix <p>Due to lots of bugs in the <a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26" hreflang="fr">previous version</a>, I'm happy to show you this one with I hope no bug inside.</p> <p>Nearly all tests have been done with <a href="http://dev.flyou.net/tag/ksh">Ksh</a>, and unfortunately I forget to test under <a href="http://dev.flyou.net/tag/bash">Bash</a>, and that's the result... Sorry.</p> <h4>Changelog :<a name="ChangeLog"></a></h4> <pre> &gt; Problem with the <a href="http://dev.flyou.net/tag/bash">Bash</a> version. If old <a href="http://dev.flyou.net/tag/bash">Bash</a> is use BASH_SOURCE doesn't exist... Now looks for the files instead of trying to load it directly to avoid, error messages. Search in above and under directory. * F01Version return the path of the Bash extension. * trim : Huge bug ! Instead of unsetting __ltrim &amp; __trim, i unsetted functions ltrim &amp; rtrim... &gt; ltrim &amp; rtrim don't work under Bash ! ARGGGGGGGGGGGGG !!!!! * iniParseFile : In case of a line only containing a left var with incorrect character (like a dash -), the awk version sent an error to the output (and under <a href="http://dev.flyou.net/tag/ksh">Ksh</a> stops). Function has been rewritted purely in <a href="http://dev.flyou.net/tag/Shell">Shell</a>... * sprintf : Problem under Bash. Bash doesn't support only one _ as a variable name : Corrected. * iniGetValue : Not use grep anymore. Only Shell ! * fileCheck : Problem under Bash. Bash doesn't support only one _ as a variable name : Corrected. * logMe : Problem under Bash. Bash doesn't support only one _ as a variable name : Corrected. &gt; Now only logRotate use non-shell programs ! + myError : If none args then empty __lastError</pre> <h4>Variables &amp; Functions diagram :<a name="Schema"></a></h4> <p><img src="http://dev.flyou.net/public/F01common.lib/v0.27/doc/.common.lib_m.jpg" alt="common.lib.png" style="display:block; margin:0 auto;" title="Liste des variables et fonctions" /></p> <h4>Files are :<a name="FileList"></a></h4> <ul> <li><code>common.lib_v0.27.tar.bz2</code> : L'archive qui contient tous les fichiers,</li> <li><code>common.lib.README</code> : Une micro documentation,</li> <li><code>common.lib</code> : La librairie Shell,</li> <li><code>_common4bash.lib</code> : L'extension pour Bash de la fonction <code>textBox()</code>,</li> <li><code>doc/common.lib.mm</code> : La liste de fonctions et variables sous forme de fichier Free(Mind|Plane),</li> <li><code>doc/common.lib.png</code> : La liste de fonctions et variables sous forme de fichier image,</li> <li><code>test/libHelp.sh</code> : Un script de test qui retourne de l'aide sur les fonctions,</li> <li><code>test/test_common-lib.conf</code> : Un fichier de configuration pour exécuter le script de test,</li> <li><code>test/test_common-lib.sh</code> : Un script de test, qui exécute quasiment toutes les fonctions de la librairie.</li> </ul> <h5>MD5 files :<a name="Md5List"></a></h5> <pre>d04d3958e604ffdd69d5387d6c95110f test/libHelp.sh 727d5784f66d1a3f73c60e6179e97ca0 test/test_common-lib.conf cef5238682be487c62fd55f9054321fb test/test_common-lib.sh 16e92798581ba2f57b82dbdfdbb60645 doc/common.lib.png 882c79e3ff9b15510f6fc457aef94b8d doc/common.lib.mm 9fa4b288ecc8e77c4fc34e712191c738 _common4bash.lib faa364482cbf69235561956c2b14f464 common.lib.README e72679facbec1adc7bd938e7d01d3b53 common.lib 68ce26b91ce97f5b521c96289718e286 F01common.lib_v0.27.tar.bz2</pre> <h5>Sha1 files :<a name="Sha1List"></a></h5> <pre>f8f1bf4afb8e54ec122f5f6e67a8a0bba72e98c8 test/libHelp.sh c21039c426cf47f9c9e0cc6c36e67c6e458e1978 test/test_common-lib.conf d47f2071c31cf653019e3c9b92fd1bde4503c21d test/test_common-lib.sh 1abdfbf61ef8f0b003e990c4145dd3be675c1936 doc/common.lib.png 43f7a0673984fc8653cc4469d5a9a28229955d85 doc/common.lib.mm c525977312841d164ff589621fed70310b23b9c9 _common4bash.lib d4c8767c77a60dfa2fb97872f22b9030beb6844f common.lib.README 2eaf7218008d8ac5588598bf5093301dfb21e8c5 common.lib b6e842358c2461118b696696ee24f49e9afb7910 F01common.lib_v0.27.tar.bz2</pre> <h4>Function list :<a name="FunctionList"></a></h4> <p>Have a look in the <a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26#FunctionList" hreflang="fr">previous note</a> (related to version <a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26">v0.26</a>)</p> http://dev.flyou.net/post/2010/04/27/F01common.lib-v0.27#comment-form http://dev.flyou.net/feed/atom/comments/22 F01common.lib v0.26 urn:md5:3be75f99c70206f5c01a7362f93023ab 2010-04-22T21:21:00+02:00 2010-04-27T16:04:15+02:00 Flyounet Outils & Développements bashF01common.libkshLinuxScriptShellUnix <p>J'ai oublié de publier les précédentes versions, aussi je vous présente cette nouvelle version.</p> <p>Après pas mal de boulot, il ne reste plus que la fonction <code>iniParseFile</code> qui continue d'utiliser <code>awk</code>, sinon tout le reste n'utilise plus que le Shell avec lequel il a été exécuté.<br /> Et j'en ai profité pour passer le code sous GPLv3 et <acronym title="Demerden Sie Sich License">DSSL</acronym> (disponible <a href="http://dssl.flyounet.net/licenses" hreflang="fr">là</a>).</p> <p>L'incontournable Changelog :<a name="ChangeLog"></a></p> <pre> v0.23 [30/01/2010] Flyounet [@Home] : * fileCreate: In case of error during touch an ugly message is now sent to /dev/null (for chmod too) v0.24 [03/03/2010] Flyounet [@Home] : &gt; First svn version v0.25 [01/04/2010] Flyounet [@Home] : + textFill: equivalent to perl "string" x number + textBox: put a caracter all around a text * textBox: not working with KSH + _str2lower &amp; _str2upper have been added, cause to KSH that doesn't support Case modification of Bash. * textBox: now use _str2*er and work with KSH * iniGetValue: Remove the call to awk (Yeah ! Love shell !) v0.26 [22/04/2010] Flyounet [@Home] : + parseHeadersForHelp: Print the headers of each function in a file. Headers are based on a first line containing a #F??. &gt; textBox: Only works with KSH... Fuck ! * textBox: A subfile is needed to make it works with bash.</pre> <p>J'ai tenté de la rendre la plus indépendante possible de <code>sed</code> et <code>awk</code> qui sont assez incontournable<sup>[<a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26#pnote-21-1" id="rev-pnote-21-1">1</a>]</sup>. Elle fonctionne sous <a href="http://dev.flyou.net/tag/bash">bash</a> ou <a href="http://dev.flyou.net/tag/ksh">ksh</a>.</p> <p>Ci-dessous un aperçu des variables et fonctions :<a name="Schema"></a> <img src="http://dev.flyou.net/public/F01common.lib/v0.26/doc/.common.lib_m.jpg" alt="common.lib.png" style="display:block; margin:0 auto;" title="Liste des variables et fonctions" /></p> <p>En annexes sont fournis les fichiers indépendants, ainsi qu'une archive regroupant le tout.<br /> Les fichiers sont :<a name="FileList"></a></p> <ul> <li><code>common.lib_v0.26.tar.bz2</code>&nbsp;: L'archive qui contient tous les fichiers,</li> <li><code>common.lib.README</code>&nbsp;: Une micro documentation,</li> <li><code>common.lib</code>&nbsp;: La librairie Shell,</li> <li><code>_common4bash.lib</code>&nbsp;: L'extension pour Bash de la fonction <code>textBox()</code>,</li> <li><code>doc/common.lib.mm</code>&nbsp;: La liste de fonctions et variables sous forme de fichier Free(Mind|Plane),</li> <li><code>doc/common.lib.png</code>&nbsp;: La liste de fonctions et variables sous forme de fichier image,</li> <li><code>test/libHelp.sh</code>&nbsp;: Un script de test qui retourne de l'aide sur les fonctions,</li> <li><code>test/test_common-lib.conf</code>&nbsp;: Un fichier de configuration pour exécuter le script de test,</li> <li><code>test/test_common-lib.sh</code>&nbsp;: Un script de test, qui exécute quasiment toutes les fonctions de la librairie.</li> </ul> <p>Les md5 des fichiers :<a name="Md5List"></a></p> <pre>26ecc237a2dcc4f74f3a21ed3db809d6 _common4bash.lib 2c540c2a2516829a7f0796ebdc789979 common.lib 07d486cdcf8c5623a2a17b7183c0b7be common.lib.README dde7d1862448a90eaadfd8e2ee5ec811 doc/common.lib.png 606b099e82e48e846c71555b2827237a doc/common.lib.mm d04d3958e604ffdd69d5387d6c95110f test/libHelp.sh 51504fd29f5fd1aa73137d73657536ae test/test_common-lib.conf 21793fdcd0cc20cf16743e223d157a63 test/test_common-lib.sh 4cef5fce3dc9d224333540b91bd53f61 F01common.lib_v0.26.tar.bz2</pre> <p>Les sha1 des fichiers :<a name="Sha1List"></a></p> <pre>123dfbdbce15d27c0d5ca8a927d5d2fe0a575b41 _common4bash.lib 72e7de48dd30ef059bc16bbd809536505de62cdf common.lib fa9dead34dbc604a49ddf15b81805d288a9a0157 common.lib.README 0acab9ac384dfb9ce9e30baa4195cd2088fc069b doc/common.lib.png d32b6a8c2ad02816031b1e2f39dde6d7f41818af doc/common.lib.mm f8f1bf4afb8e54ec122f5f6e67a8a0bba72e98c8 test/libHelp.sh 34a05abbd28321b353c34b4003b7e001afd8a1b0 test/test_common-lib.conf db07298d8710c78ca681dc4496408ee4901aa000 test/test_common-lib.sh b849101928c71eec69f7623b233f369bf0dcfd3c F01common.lib_v0.26.tar.bz2</pre> <p>Ci-dessous la liste des fonctions :<a name="FunctionList"></a></p> <pre>#F01.01.03 #Function : ps2, Print to screen string passed in argument #F01.02.02 #Function : p2st, Print to screen string passed in argument, with Time before #F01.03.01 #Function : oops, Print to screen string passed in argument, and exit 1 #F01.04.01 #Function : oopst, Print to screen string passed in argument, with time before, and exit 1 #F01.05.06 #Function : myDebug, Print to screen string passed in argument if debug level is reach #F01.06.02 #Function : myError, Store error in variables #F01.07.02 #Function : fileCheck, Check file for presence and permission #F01.08.02 #Function : fileCreate, Create file with permissions if asked #F01.09.01 #Function : fileDelete, Delete the specified file #F01.10.04 #Function : iniGetValue, Get the value from a specified INI file #F01.11.04 #Function : iniParseFile, Set all values from a specified INI file #F01.12.03 #Function : trim, Remove all blank from begining and end #F01.13.03 #Function : logRotate, Transfer the begining of a file to the rotationned version. #F01.14.01 #Function : logMe, Send the log to the log files #F01.15.01 #Function : logMeV, Send the log to the verbose log files #F01.16.03 #Function : isFunction, Verify that the function exists #F01.17.07 #Function : sprintf, return a formatted string #F01.18.02 #Function : ltrim, Remove all blank from begining #F01.19.02 #Function : rtrim, Remove all blank from end #F01.20.01 #Function : _str2lower, lower all characters #F01.21.01 #Function : _str2upper, upper all characters #F01.22.01 #Function : textFill, Create a text filled by the caracter #F01.23.03 #Function : textBox, Create a box around the text #F01.24.05 #Function : parseHeadersForHelp, Print headers of function for a given file #F01.99.02 #Function : F01Version, Return/Print version information #F01.23-1.02 #Function : _textBox4Bash, Create a box around the text</pre> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26#rev-pnote-21-1" id="pnote-21-1">1</a>] Mes fonctions préférées sont sans aucun doute : <code>sprintf</code> et les <code>*trim</code>.</p></div> http://dev.flyou.net/post/2010/04/22/F01common.lib-v0.26#comment-form http://dev.flyou.net/feed/atom/comments/21 F01common.lib v0.22 urn:md5:4f89e4c349e1c30d131d3226a6c6efd9 2010-01-25T22:39:00+01:00 2010-01-26T00:00:25+01:00 Flyounet Outils & Développements bashF01common.libkshLinuxScriptShellUnix <p>Après plusieurs mois à codouiller<sup>[<a href="http://dev.flyou.net/post/2010/01/25/F01common.lib-v0.22#pnote-20-1" id="rev-pnote-20-1">1</a>]</sup> des petits bouts de script Shell, j'ai décidé d'en faire librairie&nbsp;: <strong>F01common.lib</strong>.</p> <p>J'ai tenté de la rendre la plus indépendante possible de <code>sed</code> et <code>awk</code> qui sont assez incontournable<sup>[<a href="http://dev.flyou.net/post/2010/01/25/F01common.lib-v0.22#pnote-20-2" id="rev-pnote-20-2">2</a>]</sup>. Elle fonctionne sous <a href="http://dev.flyou.net/tag/bash">bash</a> ou <a href="http://dev.flyou.net/tag/ksh">ksh</a>.</p> <p>Ci-dessous un aperçu des variables et fonctions&nbsp;: <img src="http://dev.flyou.net/public/F01common.lib/v0.22/.common.lib_v0.22_m.jpg" alt="common.lib_v0.22.png" style="display:block; margin:0 auto;" title="Liste des variables et fonctions" /></p> <p>En annexes sont fournis les fichiers indépendants, ainsi qu'une archive regroupant le tout.<br /> Les fichiers sont&nbsp;:</p> <ul> <li><code>common.lib.README</code>&nbsp;: Une micro documentation,</li> <li><code>common.lib_v0.22</code>&nbsp;: La librairie Shell,</li> <li><code>common.lib_v0.22.mm</code>&nbsp;: La liste de fonctions et variables sous forme de fichier Free(Mind|Plane),</li> <li><code>common.lib_v0.22.png</code>&nbsp;: La liste de fonctions et variables sous forme de fichier image,</li> <li><code>common.lib_v0.22.tar.bz2</code>&nbsp;: L'archive qui contient tous les fichiers,</li> <li><code>test_common-lib.conf</code>&nbsp;: Un fichier de configuration pour exécuter le script de test,</li> <li><code>test_common-lib.sh</code>&nbsp;: Un script de test, qui exécute quasiment toutes les fonctions de la librairie.</li> </ul> <p>Les md5 des fichiers&nbsp;:</p> <pre>16fc140f5a69acdcbe5e1a21be185772 common.lib.README 3f5c5a78a3bc2da85e86395d65b88188 common.lib_v0.22 31bd6704a048d38ba1479ec42a0e97b2 common.lib_v0.22.mm d273f4afd7a95aa8aa899e53f5dca904 common.lib_v0.22.png 1d0c7dd2ce3d264a14bfd442dadf0d24 common.lib_v0.22.tar.bz2 4c550b4593b12cd849af697313139e33 test_common-lib.conf 5520dd6882f166f4688ffef981187b41 test_common-lib.sh</pre> <p>Les sha1 des fichiers&nbsp;:</p> <pre>076770bedcfef3cc2568b0d00185c47a5c84ab89 common.lib.README b9f251ee69112e2357f716fac604f3bb3d73b627 common.lib_v0.22 b7cf30403aec92271678e14f79af9a4fd1f82df8 common.lib_v0.22.mm 30790cd148091e996415a5f620e5128feb40d986 common.lib_v0.22.png 832f5c6938657396f1361f80ebcb327f31956bd1 common.lib_v0.22.tar.bz2 7113349a4f5d1ddd74e790f4c2fa782ace0af949 test_common-lib.conf 7be004717f6ca2f9281955888c011ac6209b03e7 test_common-lib.sh</pre> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2010/01/25/F01common.lib-v0.22#rev-pnote-20-1" id="pnote-20-1">1</a>] Voir définition <a href="http://dev.flyou.net/post/2010/01/14/Mon-petit-environnement-IRC" hreflang="fr">ici</a>.</p> <p>[<a href="http://dev.flyou.net/post/2010/01/25/F01common.lib-v0.22#rev-pnote-20-2" id="pnote-20-2">2</a>] Mes fonctions préférées sont sans aucun doute : <code>sprintf</code> et les <code>*trim</code>.</p></div> http://dev.flyou.net/post/2010/01/25/F01common.lib-v0.22#comment-form http://dev.flyou.net/feed/atom/comments/20 Mon petit environnement IRC : Création de fichiers Pipo urn:md5:485fc0f14d3867c19f91c367838c7f17 2010-01-19T23:04:00+01:00 2010-01-20T23:43:53+01:00 Flyounet Documentations IRCLinuxShellUnix <p>Si vous avez utilisé le <a href="http://dev.flyou.net/post/2010/01/14/Mon-petit-environnement-IRC">précédent billet</a> pour vous faire la main sur le <acronym title="eXtended DCC">XDCC</acronym>, alors vous risquez d'avoir, comme moi, besoin de fichiers volumineux.</p> <p>Dans mon joli répertoire <code>/usr/local/src/IRC_dev/XDCC_offers</code>&nbsp;:</p> <pre>for i in $(seq 1 10); do let j=15*$i; let k=1024*$j; echo "File: $j - Size : $k"; dd if=/dev/urandom of=file_${j}MiB bs=1024 count=$k;done</pre> <p>Ligne qui peut se décomposer de la sorte&nbsp;:</p> <pre>for i in $(seq 1 10) do let j=15*$i; let k=1024*$j echo "File: $j - Size : $k" dd if=/dev/urandom of=file_${j}MiB bs=1024 count=$k done</pre> <p>Ce qui a pour résultat&nbsp;:</p> <pre>$ ls -lh | awk '{print $5 "\t" $NF}'|tail 105M file_105MiB 120M file_120MiB 135M file_135MiB 150M file_150MiB 15M file_15MiB 30M file_30MiB 45M file_45MiB 60M file_60MiB 75M file_75MiB 90M file_90MiB</pre> http://dev.flyou.net/post/2010/01/19/Mon-petit-environnement-IRC-%3A-Creation-de-fichiers-Pipo#comment-form http://dev.flyou.net/feed/atom/comments/19 Transformer un bête fichier Texte (txt) en Portable Document Format (PDF) urn:md5:f84a80a441231f82010ee8ae4d35e091 2009-09-16T13:09:00+02:00 2009-09-16T13:11:06+02:00 Flyounet Documentations LinuxShellUnix <p>Bien sûr on commence par un&nbsp;:</p> <pre>apt-get install a2ps</pre> <p>Puis on y va direct&nbsp;:</p> <pre>a2ps --columns=1 -B -R -T2 accountHebergement_tataJeanine.txt -o - | ps2pdf - accountHebergement_tataJeanine.pdf</pre> <ul> <li>Pour <code>a2ps</code>&nbsp;: <ul> <li><code>--columns=1</code> pour que ça remplisse la feuille,</li> <li><code>-B</code> pour ne pas avoir de Header,</li> <li><code>-R</code> pour forcer la mise en page en mode Portrait,</li> <li><code>-T2</code> pour forcer les tabulations à 2 caractères,</li> <li><code>-o -</code> pour forcer l'envoi vers la sortie standard.</li> </ul></li> <li>Pour <code>ps2pdf</code>&nbsp;: <ul> <li><code>-</code> pour forcer la transformation de l'entrée standard.</li> </ul></li> </ul> http://dev.flyou.net/post/2009/09/16/Transformer-un-bete-fichier-Texte-txt-en-Portable-Document-Format-PDF#comment-form http://dev.flyou.net/feed/atom/comments/17 Webalizer et la compilation... urn:md5:cd38b9f75fdd297f73a302b32a8e1c05 2009-09-08T17:00:00+02:00 2009-09-08T18:10:50+02:00 Flyounet Documentations CompilerLinuxShellStatistiquesUnixWebalizer <p>Pour mon boulot<sup>[<a href="http://dev.flyou.net/post/2009/09/08/Webalizer-et-la-compilation#pnote-15-1" id="rev-pnote-15-1">1</a>]</sup>, j'ai un léger besoin de <a href="http://www.mrunix.net/webalizer/" hreflang="en" title="Analyse &amp; statistiques de logs Apache">Webalizer</a>. Du coup, plutôt que d'utiliser la version binaire<sup>[<a href="http://dev.flyou.net/post/2009/09/08/Webalizer-et-la-compilation#pnote-15-2" id="rev-pnote-15-2">2</a>]</sup>, j'ai besoin d'en avoir une version static<sup>[<a href="http://dev.flyou.net/post/2009/09/08/Webalizer-et-la-compilation#pnote-15-3" id="rev-pnote-15-3">3</a>]</sup>. Donc voici la ligne de configuration pour mes tests&nbsp;:</p> <pre>./configure --prefix=/tmp/webalizer-bin --enable-static --with-geodb=/tmp/webalizer-bin/geodb --enable-geoip --enable-bz2</pre> <p>Je poursuis d'un <code>make&nbsp;; make install</code> qui se banane comme une vieille bouse en m'insultant avec de vieilles vannes sur la lib <code>pthread</code>&nbsp;:</p> <pre>/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(os_addrinfo.o): In function `__os_getaddrinfo': (.text+0x44): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(os_pid.o): In function `__os_id': (.text+0x2a): undefined reference to `pthread_self' /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(os_yield.o): In function `__os_yield': (.text+0xc9): undefined reference to `pthread_yield' /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(mut_pthread.o): In function `__db_pthread_mutex_destroy': (.text+0x38): undefined reference to `pthread_mutex_destroy' /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(mut_pthread.o): In function `__db_pthread_mutex_destroy': (.text+0x5f): undefined reference to `pthread_cond_destroy' /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(mut_pthread.o): In function `__db_pthread_mutex_unlock': (.text+0x159): undefined reference to `pthread_mutex_unlock' /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(mut_pthread.o): In function `__db_pthread_mutex_unlock': (.text+0x1c4): undefined reference to `pthread_mutex_lock' /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(mut_pthread.o): In function `__db_pthread_mutex_unlock': (.text+0x1e3): undefined reference to `pthread_cond_signal' /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libdb.a(mut_pthread.o): In function `__db_pthread_mutex_lock': (.text+0x278): undefined reference to `pthread_mutex_lock'</pre> <p>Pour faire simple la manip est de modifier le <code>Makefile</code>&nbsp;: <br />Avant&nbsp;:</p> <pre>LIBS = -lGeoIP -lbz2 -ldb -lgd -lpng -lz -lm WCMGR_LIBS = -ldb</pre> <p>Après&nbsp;:</p> <pre>LIBS = -lGeoIP -lbz2 -ldb -lgd -lpng -lz -lm -lpthread WCMGR_LIBS = -ldb -lpthread</pre> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2009/09/08/Webalizer-et-la-compilation#rev-pnote-15-1" id="pnote-15-1">1</a>] Oui ça m'arrive d'y aller...</p> <p>[<a href="http://dev.flyou.net/post/2009/09/08/Webalizer-et-la-compilation#rev-pnote-15-2" id="pnote-15-2">2</a>] Qui est linkée dynamiquement.</p> <p>[<a href="http://dev.flyou.net/post/2009/09/08/Webalizer-et-la-compilation#rev-pnote-15-3" id="pnote-15-3">3</a>] Oui, c'est une grande invention de décideur... Je compile sur ma machine et utilise les binaires générés sur une autre qui n'a pas les libs, car c'est une machine de Production... Cherchez pas, il n'y a pas de vrai raison derrière (et je ne dis pas cela parce que le décideur vient du monde Windows).</p></div> http://dev.flyou.net/post/2009/09/08/Webalizer-et-la-compilation#comment-form http://dev.flyou.net/feed/atom/comments/15 Que faire sous Windows quand on a pas de server X urn:md5:59cb0a2bad9dcd888b207da29eb7875f 2007-09-28T14:26:00+02:00 2008-01-18T01:36:43+01:00 Flyounet Documentations Doc.LinuxServer XWindows <p>Vous êtes dans une société qui ne vous permet pas d''utiliser XWin32&nbsp;? Qui ne veut pas payer la license pour un Exceed... Alors, plus beaucoup de solution...</p> <p>Et pourtant c''est tout simple, ça se fait en 5 étape&nbsp;:</p> <ul> <li>On va se chercher <a href="http://freedesktop.org/wiki/Xming" hreflang="en" title="Site Xming">Xming</a><sup>[<a href="http://dev.flyou.net/post/2007/09/28/Que-faire-sous-Windows-quand-on-a-pas-de-server-X#pnote-3-1" id="rev-pnote-3-1">1</a>]</sup>,</li> <li>On se télécharge les archives Xming et Xming-fonts sur <a href="http://sourceforge.net/projects/xming" hreflang="en" title="SourceForge">SourceForge</a>,</li> <li>On s''installe Xming et Xming-fonts,</li> <li>On modifie le lien d''appel à Xming en ajoutant <q>-ac</q> à la fin<sup>[<a href="http://dev.flyou.net/post/2007/09/28/Que-faire-sous-Windows-quand-on-a-pas-de-server-X#pnote-3-2" id="rev-pnote-3-2">2</a>]</sup></li> <li>On lance Xming et voilà...</li> </ul> <p>Et après&nbsp;? On demande à PuTTY de forwardé X sur localhost, et un petit <code>export DISPLAY</code> qui va bien...</p> <div class="footnotes"><h4>Notes</h4> <p>[<a href="http://dev.flyou.net/post/2007/09/28/Que-faire-sous-Windows-quand-on-a-pas-de-server-X#rev-pnote-3-1" id="pnote-3-1">1</a>] Merci l'OpenSource.</p> <p>[<a href="http://dev.flyou.net/post/2007/09/28/Que-faire-sous-Windows-quand-on-a-pas-de-server-X#rev-pnote-3-2" id="pnote-3-2">2</a>] Exemple : <code>"C:\\Program Files\\Xming\\Xming.exe" :0 -clipboard -multiwindow -ac</code></p></div> http://dev.flyou.net/post/2007/09/28/Que-faire-sous-Windows-quand-on-a-pas-de-server-X#comment-form http://dev.flyou.net/feed/atom/comments/3