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

<channel>
	<title>blog ntic de revolunet &#187; shell</title>
	<atom:link href="http://blog.revolunet.com/index.php/conseil.intranet/developpement/shell/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.revolunet.com</link>
	<description>Blog des Nouvelles Technologies de l'Information et de la Communication</description>
	<lastBuildDate>Tue, 10 Aug 2010 13:02:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>rsync alternative for low cpus</title>
		<link>http://blog.revolunet.com/index.php/geek-style/rsync-alternative-for-low-cpus</link>
		<comments>http://blog.revolunet.com/index.php/geek-style/rsync-alternative-for-low-cpus#comments</comments>
		<pubDate>Thu, 02 Apr 2009 12:11:54 +0000</pubDate>
		<dc:creator>Juju</dc:creator>
				<category><![CDATA[geek style]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/?p=289</guid>
		<description><![CDATA[I had to transfer some +500Gb of data from an NTFS drive, using my QNAP TS409 PRO Nas external USB connector.
Using the integrated &#8220;hot copy button&#8221; or a simple rsync between the two drives, i only reached 2.5mb/s which is a pitty. In fact its the Qnap Cpu which is a pitty. (yes rsync is [...]]]></description>
			<content:encoded><![CDATA[<p>I had to transfer some +500Gb of data from an NTFS drive, using my QNAP TS409 PRO Nas external USB connector.</p>
<p>Using the integrated &#8220;hot copy button&#8221; or a simple rsync between the two drives, i only reached 2.5mb/s which is a pitty. In fact its the Qnap Cpu which is a pitty. (yes rsync is cpu consuming)</p>
<p>So inspired from <a href="http://discuss.joelonsoftware.com/default.asp?design.4.528600.11">http://discuss.joelonsoftware.com/default.asp?design.4.528600.11</a> i wrote a simple bash script to recursively copy a directory tree, but using cp instead of rsync. I can now reach 6.5mb/s which is 3 times faster.</p>
<p>So here it is : <a href="http://www.revolunet.com/static/download/labo/mysync.sh">http://www.revolunet.com/static/download/labo/mysync.sh</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/geek-style/rsync-alternative-for-low-cpus/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mini Freeplayer</title>
		<link>http://blog.revolunet.com/index.php/general/mini-freeplayer</link>
		<comments>http://blog.revolunet.com/index.php/general/mini-freeplayer#comments</comments>
		<pubDate>Tue, 16 Oct 2007 08:40:39 +0000</pubDate>
		<dc:creator>Juju</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Iliad - Free]]></category>
		<category><![CDATA[VLC]]></category>
		<category><![CDATA[developpement]]></category>
		<category><![CDATA[geek style]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/index.php/general/mini-freeplayer</guid>
		<description><![CDATA[J&#8217;ai crée un simple script batch qui permet de lire très facilement une video sur son televiseur, grace au systeme &#8216;Freeplayer&#8217; de la Freebox. Il suffit de glisser une video sur ce script pour la lancer sur votre TV.
Le script s&#8217;occupe de lancer VLC avec les bons parametres, et de créer une page sur votre [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai crée un simple script batch qui permet de lire très facilement une video sur son televiseur, grace au systeme &#8216;Freeplayer&#8217; de la Freebox. Il suffit de glisser une video sur ce script pour la lancer sur votre TV.</p>
<p>Le script s&#8217;occupe de lancer VLC avec les bons parametres, et de créer une page sur votre disque pour la Freebox. Cette page affiche simplement la vidéo en plein écran.</p>
<p>Pour que cela fonctionne, il faut :</p>
<ul>
<li>Que dans la gestion de votre compte Free (free.fr), vous ayez configuré l&#8217;adresse IP de la machine ou sera installé ce script. (je vous conseille d&#8217;affecter à cette machine une IP fixe, en utilisant son adresse MAC, que vous pouvez trouver en tapant ipconfig /all dans une fenetre MSDOS)</li>
<li>Que l&#8217;éventuel firewall sur cette machine ai le port 8080 ouvert pour que la freebox puisse accéder à la page settings.html (générée par le script)</li>
<li>Que vous modifiez éventuellement le chemin de VLC sur votre PC (VLC_PATH) au début du fichier</li>
</ul>
<p>Voila, c&#8217;ets du Quick &#038; Dirty mais ca marche nickel <img src='http://blog.revolunet.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Le seul souci est que les sous titre ne sont pas gérés, mais c&#8217;est pour bientot, des que l&#8217;un d&#8217;entre vous corrige le script <img src='http://blog.revolunet.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  De plus c&#8217;est un script uniquement pour Windows, désolé les gars mais vous pouvez l&#8217;adapter très facilement&#8230;</p>
<p>A télécharger ici et à mettre sur votre bureau par exemple : <a href="http://code.revolunet.com/MiniFreePlayer/MiniFreePlayer.bat">http://code.revolunet.com/MiniFreePlayer/MiniFreePlayer.bat</a></p>
<p>Commentaires / corrections bienvenues ici même <img src='http://blog.revolunet.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/mini-freeplayer/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>associer un protocole a un script sous windows</title>
		<link>http://blog.revolunet.com/index.php/general/associer-un-protocole-a-un-script-sous-windows</link>
		<comments>http://blog.revolunet.com/index.php/general/associer-un-protocole-a-un-script-sous-windows#comments</comments>
		<pubDate>Mon, 26 Feb 2007 18:47:58 +0000</pubDate>
		<dc:creator>Juju</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[developpement]]></category>
		<category><![CDATA[geek style]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/index.php/general/associer-un-protocole-a-un-script-sous-windows</guid>
		<description><![CDATA[Dans une page web, il peut etre assez pratique d&#8217;associer un script ou un programme externe quand on clique sur un lien avec un protocole spécifique. Par exemple un lien href avec comme valeur callto:0102030405 pourrait me permettre d&#8217;executer le dialer de windows en lui demandant de composer un numéro. C&#8217;est très pratique en intranet [...]]]></description>
			<content:encoded><![CDATA[<p>Dans une page web, il peut etre assez pratique d&#8217;associer un script ou un programme externe quand on clique sur un lien avec un protocole spécifique. Par exemple un lien href avec comme valeur callto:0102030405 pourrait me permettre d&#8217;executer le dialer de windows en lui demandant de composer un numéro. C&#8217;est très pratique en intranet par exemple.</p>
<div class="codesnip-container" >&lt;a href=&#8221;callto:00102030405&#8243; mce_href=&#8221;callto:00102030405&#8243;&gt;appeller le 01 02 03 04 05&lt;/a&gt;</div>
<p>(Notez que dans le href il y a un zéro de plus en prefixe qui me permettra de composer un numéro externe)</p>
<p>Il nous suffit pour cela d&#8217;ajouter au registre une petite clé, qui associera le nom de notre &#8216;protocole&#8217; à un programme (faites un fichier .reg puis executez le)</p>
<div class="codesnip-container" >Windows Registry Editor Version 5.00<br />
[HKEY_CLASSES_ROOTcallto]<br />
@=&#8221;tst protocol handler&#8221;<br />
&#8220;URL Protocol&#8221;=&#8221;"<br />
[HKEY_CLASSES_ROOTcalltoshell]<br />
[HKEY_CLASSES_ROOTcalltoshellopen]<br />
[HKEY_CLASSES_ROOTcalltoshellopencommand]<br />
@=&#8221;C:\WINDOWS\system32\wscript.exe &#8220;C:\dial.vbs&#8221; &#8220;%1&#8243;&#8221;</div>
<p>dial.vbs est un petit script qui permet de parser les arguments (ici le numéro) et de les envoyez à dial.exe, petit utilitaire permettant de composer un numéro envoyé en premier paramètre, technique inspirée de <a href="http://www.sugarcrm.com/forums/printthread.php?t=13080" target="_blank">ce post sur le forum de SugarCRM</a>.</p>
<p>Vous pouvez tout autant passer la main à un script Python ou autre qui fera ce que vous lui avez appris a faire avec les arguments. Attention toutefois, le programme sera éxécuté avec les droits de l&#8217;utilisateur actuel donc surement pas admin en entreprise&#8230;</p>
<p>Et voila, des qu&#8217;un utilisateur clique sur un lien callto, le numéro est composé sur le modem. Branchez donc l&#8217;entrée modem de votre telephone a votre PC et c&#8217;est parti pour une numérotation automatisée depuis votre page web !</p>
<p>Skype a son callto:0102030405, Wengo son wengo:usernick et maintenant nous avons aussi nos propres handlers&#8230; Enjoy <img src='http://blog.revolunet.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/associer-un-protocole-a-un-script-sous-windows/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>de EPS vers JPG en masse</title>
		<link>http://blog.revolunet.com/index.php/general/de-eps-vers-jpg-en-masse</link>
		<comments>http://blog.revolunet.com/index.php/general/de-eps-vers-jpg-en-masse#comments</comments>
		<pubDate>Fri, 06 Oct 2006 11:17:34 +0000</pubDate>
		<dc:creator>Juju</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[developpement]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/index.php/general/de-eps-vers-jpg-en-masse</guid>
		<description><![CDATA[Ayant eu à convertir plusieurs dizaines de EPS en JPEG, voici un petit exemple de ce qu&#8217;on peut faire grâce à Linux en 2 lignes de commandes.
1- Je mets mes EPS en vrac dans différents répertoire dans un dossier ./eps puis je convertis tous mes eps en jpg grace à ImageMagick et GhostScript :
find ./eps -iname [...]]]></description>
			<content:encoded><![CDATA[<p>Ayant eu à convertir plusieurs dizaines de EPS en JPEG, voici un petit exemple de ce qu&#8217;on peut faire grâce à Linux en 2 lignes de commandes.</p>
<p>1- Je mets mes EPS en vrac dans différents répertoire dans un dossier ./eps puis je convertis tous mes eps en jpg grace à ImageMagick et GhostScript :</p>
<div class="codesnip-container" >find ./eps -iname *.eps -exec convert -density 300 &#8220;{}&#8221; &#8220;{}.jpg&#8221; ;</div>
<p>2- je récuperes tous les fichiers jpg crées et les mets dans un dossier ./jpg :</p>
<div class="codesnip-container" >find ./eps -iname *.jpg -exec cp&#8221;{}&#8221; ./jpg/ ;<br />
# j&#8217;efface les eps<br />
rm -rf ./eps</div>
<p>Et voila, en quelques minutes, ma machine m&#8217;a converti toutes mes images <img src='http://blog.revolunet.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </p>
<p>NB :</p>
<ul>
<li>-density 300 permet d&#8217;avoir une résolution de 300dpi (mettre 72 pour le web)</li>
<li>vous pouvez ajouter -size 300 pour forcer un redimensionnement de toutes les images à 300px de large</li>
</ul>
<p>> toutes les options de la ligne de commande ici : <a href="http://www.imagemagick.org/script/command-line-options.php">http://www.imagemagick.org/script/command-line-options.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/de-eps-vers-jpg-en-masse/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Serveur de Sauvegardes sous Linux</title>
		<link>http://blog.revolunet.com/index.php/general/serveur-de-sauvegardes-sous-linux</link>
		<comments>http://blog.revolunet.com/index.php/general/serveur-de-sauvegardes-sous-linux#comments</comments>
		<pubDate>Wed, 22 Mar 2006 16:48:56 +0000</pubDate>
		<dc:creator>Juju</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[developpement]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://blog.revolunet.com/index.php/general/serveur-de-sauvegardes-sous-linux</guid>
		<description><![CDATA[Voici quelques infos utiles pour mettre en place un serveur de sauvegardes de base sous Linux. Il ne gère pas le multi-version, mais permet de sauvegarder plusieurs disques réseau à intervalle régulier. Pour 50Go, le temps de chaque vérification et mise à jour n&#8217;est que de 20 minutes maximum. (plusieurs heures lors de la première [...]]]></description>
			<content:encoded><![CDATA[<p>Voici quelques infos utiles pour mettre en place un serveur de sauvegardes de base sous Linux. Il ne gère pas le multi-version, mais permet de sauvegarder plusieurs disques réseau à intervalle régulier. Pour 50Go, le temps de chaque vérification et mise à jour n&#8217;est que de 20 minutes maximum. (plusieurs heures lors de la première sauvegarde)</p>
<p>Celui ci fonctionne avec rSync et un petit script shell.</p>
<p>J&#8217;ai utilisé le système de fichiers ReiserFS pour pouvoir gérer plus de 32000 fichiers par repertoire et la distribution Debian testing (à partir de la version netinst (8Mo à télécharger)). Le système est installé et fonctionnel en 15 minutes. Vous pouvez telecharger les ISO de cette version là : <a href="http://ftp.debian.org/debian/dists/testing/main/installer-i386/current/images/netboot/" target="_blank">http://ftp.debian.org/debian/dists/testing/main/installer-i386/current/images/netboot/</a></p>
<p>Dans mon fichier fstab (qui regroupe les montages de disques), j&#8217;ai ajouté une ligne par répertoire réseau à enregistrer :</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1"># pour monter le partage &#8216;public&#8217; de la machine windows 192.168.5.10 dans /mnt/saves/public/ :</span><br />
//<span class="nu0">192</span>.<span class="nu0">168</span>.<span class="nu0">5</span>.<span class="nu0">10</span>/public /mnt/saves/public smbfs ro,<span class="re2">username=</span>user,<span class="re2">password=</span>pass <span class="nu0">0</span> <span class="nu0">0</span></div>
</div>
<p>Ensuite j&#8217;ai crée un script shell qui me synchronise tous les disques montés dans /mnt/saves sur le disque ReiserFS local. Pour cela, il faut utiliser rSync :</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1"># ceci va synchroniser tout le contenu /mnt/saves/ vers /home/saves/data/ (en recursif)</span><br />
rsync -avz /mnt/saves/ /home/saves/data/</div>
</div>
<p>On peut rajouter un fichier avec des exclusions pour éviter de sauvegarder des gigas de mp3, videos&#8230; à passer à la ligne de commande de rSync :</p>
<div class="codesnip-container" >
<div class="codesnip">&#8211;exclude-<span class="re2">from=</span>exclusions.txt<br />
dans lequel on trouve par exemple :<br />
*.mp*<br />
*.MP*<br />
*.avi<br />
*.AVI</div>
</div>
<p>Ensuite dans la crontab, j&#8217;ai automatisé l&#8217;execution de ce script en la planifiant tous les jours à 1h du matin :</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="nu0">0</span> <span class="nu0">1</span> * * * root /root/SaveAll.sh</div>
</div>
<p>Dans mon script SaveAll.sh, j&#8217;ai apporté des améliorations qui me permettent de tout logguer et de recevoir le compte-rendu de sauvegarde par email :</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1"># date et heure d&#8217;exec</span><br />
<span class="re2">curDate=</span>`date +%d%m%y_%H%M`<br />
<span class="co1"># nom du fichier log</span><br />
<span class="re2">logFileName=</span><span class="st0">&#8220;/root/logs/log_saves_$curDate.log&#8221;</span><br />
<span class="co1"># redirige les sorties erreur et standard vers mon fichier de log</span><br />
<span class="kw3">exec</span> &gt;<span class="re1">$logFileName</span> <span class="nu0">2</span>&gt;&amp;<span class="nu0">1</span><br />
<span class="co1"># montage des smbfs au cas ou pas montés au boot</span><br />
mount -a<br />
<span class="co1"># execution de rSync</span><br />
rsync -avz &#8211;exclude-<span class="re2">from=</span>exclusions.txt /mnt/saves/ /home/saves/data/<br />
<span class="co1"># envoi du mail</span><br />
mpack -s <span class="st0">&#8220;Compte rendu de sauvegarde&#8221;</span> <span class="re1">$logFileName</span> admin@revolunet.com</div>
</div>
<p>Dans ce mail me sont également envoyés quelques infos : la taille de chaque repertoire de sauvegarde et le nombre de fichiers :</p>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1"># Taille des repertoires sauvegardés</span><br />
du -h &#8211;max-<span class="re2">depth=</span><span class="nu0">1</span> /home/saves/data<br />
<span class="co1"># Nombre de fichiers dans chaque repertoire</span><br />
<span class="kw1">for</span> folder <span class="kw1">in</span> `ls -d /home/saves/data/*/&#8220;; <span class="kw1">do</span><br />
<span class="re2">nbfiles=</span>`find <span class="re1">$folder</span> -iname <span class="st0">&#8216;*.*&#8217;</span> | wc -l`<br />
<span class="kw3">echo</span> <span class="st0">&#8220;$folder : $nbfiles Fichiers&#8221;</span>;<br />
<span class="kw1">done</span></div>
</div>
<p>Ensuite, libre à vous de partager ce repertoire dans Samba pour qu&#8217;il soit accessible depuis le réseau.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.revolunet.com/index.php/general/serveur-de-sauvegardes-sous-linux/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
