<?xml
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>Tech de Gamuza</title>
	<link>https://tech.gamuza.fr/</link>
	
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://tech.gamuza.fr/spip.php?id_mot=4&amp;page=backend" rel="self" type="application/rss+xml" />




<item xml:lang="fr">
		<title>Script pour mettre &#224; jour par SVN et GIT tous les plugins d'un SPIP</title>
		<link>https://tech.gamuza.fr/script-pour-mettre-a-jour-par-svn-et-git-tous-les-plugins-d-un-spip.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/script-pour-mettre-a-jour-par-svn-et-git-tous-les-plugins-d-un-spip.html</guid>
		<dc:date>2016-05-20T16:52:59Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>


		<dc:subject>bash</dc:subject>
		<dc:subject>svn</dc:subject>
		<dc:subject>Linux</dc:subject>
		<dc:subject>plugin SPIP</dc:subject>
		<dc:subject>scripts</dc:subject>
		<dc:subject>GIT</dc:subject>

		<description>&lt;p&gt;Script de maj plugins SPIP en SVN et GIT&lt;/p&gt;

-
&lt;a href="https://tech.gamuza.fr/-scripts-et-commandes-sh-.html" rel="directory"&gt;Scripts sh&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-bash-+.html" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-svn-+.html" rel="tag"&gt;svn&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-linux-+.html" rel="tag"&gt;Linux&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-plugin-spip-+.html" rel="tag"&gt;plugin SPIP&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-scripts-+.html" rel="tag"&gt;scripts&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-git-+.html" rel="tag"&gt;GIT&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Un petit script qui permet de &lt;strong&gt;mettre &#224; jour&lt;/strong&gt; en ligne de commande tous les plugins d'un site SPIP qui sont versionn&#233;s soit sous &lt;strong&gt;SVN&lt;/strong&gt; soit sous &lt;strong&gt;GIT&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;maj_plugins.sh&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='bash spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#!/bin/bash # script de maj des plugins d'un spip dossier=($(ls -d *)) for i in &#034;${dossier[@]}&#034; do if [ -d &#034;$i/.svn&#034; ];then svn up ./$i ;fi if [ -d &#034;$i/.git&#034; ];then echo &#034;Mise &#224; jour de $i :&#034;; cd $i; git pull; cd .. ; fi done&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Utilisation&lt;/strong&gt; :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Cr&#233;er un fichier &lt;strong&gt;maj_plugin.sh&lt;/strong&gt; contenant le code ci-dessus.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Placer ce fichier dans un r&#233;pertoire de votre PATH.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;echo $PATH&lt;/textarea&gt;
&lt;p&gt;&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Placez vous dans le r&#233;pertoire &lt;strong&gt;plugins/&lt;/strong&gt; de votre site, et lancez le script&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;maj_plugins.sh&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Modifier les droits sur une arborescence de dossiers et fichiers</title>
		<link>https://tech.gamuza.fr/modifier-les-droits-sur-une-arborescence-de-dossiers-et-fichiers.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/modifier-les-droits-sur-une-arborescence-de-dossiers-et-fichiers.html</guid>
		<dc:date>2016-05-07T10:44:29Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>clem</dc:creator>


		<dc:subject>bash</dc:subject>
		<dc:subject>Linux</dc:subject>
		<dc:subject>commande sh</dc:subject>

		<description>&lt;p&gt;&lt;strong&gt;But des commandes :&lt;/strong&gt; modifier les droits sur une arborescence en diff&#233;renciant les droits sur les dossiers et les fichiers.&lt;/p&gt;

-
&lt;a href="https://tech.gamuza.fr/-scripts-et-commandes-sh-.html" rel="directory"&gt;Scripts sh&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-bash-+.html" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-linux-+.html" rel="tag"&gt;Linux&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-commande-sh-+.html" rel="tag"&gt;commande sh&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Lorsque l'on doit modifier les permissions&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;voir Wikipedia Permissions_UNIX pour les explications sur les permissions&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; sur une arborescence de dossiers et fichiers, la m&#233;thode &#034;simple&#034; consiste &#224; utiliser la commande (par exemple ici pour donner des permissions de type 2775)&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;chmod -R 2775 /chemin/arborescence/a/modifier&lt;/textarea&gt;
&lt;p&gt;c'est &#224; dire utiliser l'option &lt;strong&gt;-R&lt;/strong&gt; de la commande &lt;strong&gt;chmod&lt;/strong&gt; qui permet de propager la modification des droits sur l'ensemble des dossiers et fichiers de l'arborescence.&lt;br class='autobr' /&gt; Cette m&#233;thode &#224; l'inconv&#233;nient que fichiers et dossiers h&#233;ritent des m&#234;me permissions alors que si on souhaite (en g&#233;n&#233;ral) pouvoir autoriser l'acc&#232;s aux dossiers, il n'est pas souhaitable de mettre tous les fichiers de l'arborescence en mode &#034;ex&#233;cutable&#034; : exprim&#233; en octal, cela revient &#224; vouloir donner la permission &lt;strong&gt;7&lt;/strong&gt; (x) pour les dossiers alors que l'on veut donner la permission &lt;strong&gt;6&lt;/strong&gt; (-) pour les fichiers.&lt;/p&gt;
&lt;p&gt;Pour pouvoir mettre des droits diff&#233;rents sur les dossiers et les fichiers d'une arborescence on peut donc utiliser les commandes suivantes (exemple pour mettre 2775 sur les dossiers et 664 sur les fichiers) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;chemin='/chemin/arborescence/a/modifier' find ${chemin} -type f -print0 | xargs -0 chmod 0664 find ${chemin} -type d -print0 | xargs -0 chmod 2775&lt;/textarea&gt;
&lt;p&gt;c'est &#224; dire utiliser la commande &lt;strong&gt;find&lt;/strong&gt; avec l'option &lt;strong&gt;-type d&lt;/strong&gt; pour les dossiers ou &lt;strong&gt;-type f&lt;/strong&gt; pour les fichiers afin de s&#233;lectionner uniquement dossiers ou fichiers et de rediriger le r&#233;sultat de cette commande vers la commande &lt;strong&gt;chmod&lt;/strong&gt; avec les permissions appropri&#233;es au type s&#233;lectionn&#233;.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;voir Wikipedia &lt;a href=&#034;https://fr.wikipedia.org/wiki/Permissions_UNIX&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;Permissions_UNIX&lt;/a&gt; pour les explications sur les permissions&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<pre>Erreur d’exécution plugins/spipr-dist/inclure/rss-item.html</pre>
<pre>Erreur d’exécution plugins/spipr-dist/inclure/rss-item.html</pre>
<item xml:lang="fr">
		<title>Myextract : un script pour restaurer un ensemble de dumps MySQL</title>
		<link>https://tech.gamuza.fr/un-script-pour-restaurer-un-ensemble-de-dumps-mysql.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/un-script-pour-restaurer-un-ensemble-de-dumps-mysql.html</guid>
		<dc:date>2015-10-12T14:25:59Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>clem</dc:creator>


		<dc:subject>bash</dc:subject>
		<dc:subject>MySQL</dc:subject>
		<dc:subject>script sh</dc:subject>

		<description>&lt;p&gt;&lt;strong&gt;But du script&lt;/strong&gt; : restaurer un ensemble de dumps MySQL bzipp&#233;s et stock&#233;s dans un r&#233;pertoire en une seule op&#233;ration (utilitaire pour migration de serveur).&lt;/p&gt;

-
&lt;a href="https://tech.gamuza.fr/-scripts-et-commandes-sh-.html" rel="directory"&gt;Scripts sh&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-bash-+.html" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-mysql-+.html" rel="tag"&gt;MySQL&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-script-sh-+.html" rel="tag"&gt;script sh&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;div class='spip_document_59 spip_document spip_documents spip_document_image spip_documents_right spip_document_right'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://tech.gamuza.fr/local/cache-vignettes/L469xH154/liste_dumps2-3a1a0.jpg?1768436110' width='469' height='154' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le but de ce script est de restaurer un ensemble de sauvegardes MySQL qui sont stock&#233;es au format bzip2 dans un dossier. Chaque fichier d'extension .sql.bz2 porte le nom de la base de donn&#233;es dans laquelle il doit &#234;tre restaur&#233; : par exemple &lt;strong&gt;toto.sql.bz2&lt;/strong&gt; devra &#234;tre restaur&#233; dans la base &lt;strong&gt;toto&lt;/strong&gt;.&lt;br class='autobr' /&gt;
Le chemin du dossier contenant les sauvegardes est pass&#233; en param&#232;tre au script.&lt;br class='autobr' /&gt;
&lt;br style=&#034;clear: both;&#034;/&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='28' class='spip_cadre spip_cadre_block' dir='ltr'&gt;#!/bin/bash # myextract.sh # decompacte un ensemble de dumps MySQL bzipp&#233;s stock&#233;es dans un r&#233;pertoire # le chemin du r&#233;pertoire est pass&#233; en param&#232;tre du script # exemple: myextract.sh /chemin/du/repertoire/des_bzips # configuration # nom et mot de passe de l'utilisateur MySQL USER_MYSQL=toto PASS_MYSQL=&#034;super_secret&#034; for j in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls -1 -r $1&lt;/code&gt;; do LA_BASE=&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;echo $j |sed s/.sql.bz2//&lt;/code&gt; echo &#034;restauration de $LA_BASE&#034; # si les fichiers de dump ont &#233;t&#233;s g&#233;n&#233;r&#233;s avec l'option -B (cr&#233;ation de la base), # enlever l'option -D $LA_BASE dans la commande suivante bunzip2 -c $1/$j | mysql -u$USER_MYSQL --password=$PASS_MYSQL -D $LA_BASE done&lt;/textarea&gt;
&lt;p&gt;A lancer dans un tmux/screen si le nombre de sauvegardes (ou leur taille) est cons&#233;quent(e).&lt;/p&gt;
&lt;p&gt;Pour la g&#233;n&#233;ration des sauvegardes MySQL sous forme de fichiers bzipp&#233;s voir : &lt;a href='https://tech.gamuza.fr/mydump-un-petit-script-pour-sauvegarder-des-bases-de-donnees-au-format-bzip2.html' class=&#034;spip_in&#034;&gt;Mydump : un petit script pour sauvegarder des bases de donn&#233;es au format bzip2&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<pre>Erreur d’exécution plugins/spipr-dist/inclure/rss-item.html</pre>
<item xml:lang="fr">
		<title>Cr&#233;er et configurer une paire de cl&#233;s SSH pour la synchronisation entre 2 serveurs</title>
		<link>https://tech.gamuza.fr/creer-et-configurer-une-paire-de-cles-ssh-pour-la-synchronisation-entre-2-serveurs.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/creer-et-configurer-une-paire-de-cles-ssh-pour-la-synchronisation-entre-2-serveurs.html</guid>
		<dc:date>2015-10-01T12:12:40Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>


		<dc:subject>ssh</dc:subject>
		<dc:subject>Debian</dc:subject>
		<dc:subject>bash</dc:subject>
		<dc:subject>tutoriel</dc:subject>

		<description>&lt;p&gt;&lt;strong&gt;Tutoriel&lt;/strong&gt; : l'objectif est de cr&#233;er une paire de cl&#233;s SSH qui permettra de r&#233;aliser des backups (avec rsync, ...) entre 2 serveurs.&lt;/p&gt;

-
&lt;a href="https://tech.gamuza.fr/-configuration-d-un-serveur-debian-.html" rel="directory"&gt;Debian&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-ssh-+.html" rel="tag"&gt;ssh&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-debian-+.html" rel="tag"&gt;Debian&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-bash-+.html" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-tutoriel-+.html" rel="tag"&gt;tutoriel&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt;
&lt;h2 class=&#034;spip&#034;&gt;Cr&#233;ation d'un user sp&#233;cifique sur les 2 serveurs&lt;/h2&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;useradd --home /home/toto --password mon_super_motdepasse toto&lt;/textarea&gt;&lt;/li&gt;&lt;li&gt;
&lt;h2 class=&#034;spip&#034;&gt;Du serveur de production (PROD) vers le serveur de backup (SAUVE)&lt;/h2&gt;
&lt;p&gt;&lt;small&gt;&lt;strong&gt;Remarque&lt;/strong&gt; : dans toutes les commandes ssh, l'option &lt;strong&gt;-p&lt;/strong&gt; permet de pr&#233;ciser le port de connexion ssh si diff&#233;rent de 22.&lt;/small&gt;&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;Sur le serveur PROD :&lt;/strong&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; G&#233;n&#233;rer une paire de cl&#233;s publique/priv&#233;e sans mot de passe avec le compte utilis&#233; pour la synchro (toto par ex)&lt;br class='manualbr' /&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;ssh-keygen -t rsa&lt;/textarea&gt;
&lt;p&gt;&lt;br class='manualbr' /&gt;&lt;strong&gt;nom du fichier de cl&#233;&lt;/strong&gt; =/home/toto/.ssh/ id_rsa_rsync&lt;br class='manualbr' /&gt;&lt;strong&gt;pass&lt;/strong&gt; = vide pour connexion auto de rsync&lt;/p&gt;
&lt;/li&gt;&lt;li&gt; Envoyer sa cle priv&#233; sur le serveur SAUVE &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;ssh-copy-id -i ~/.ssh/id_rsa_rync.pub '-p 1234 toto@serveur-sauve.tld'&lt;/textarea&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Sur le serveur SAUVE :&lt;/strong&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Ajouter les options de limitation de connexion en d&#233;but de la ligne de la cl&#233; dans le fichier authorized_keys : &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;from=&#034;1.2.3.4,...liste des IP autoris&#233;es s&#233;par&#233;es par une virgule&#034;&lt;/textarea&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Sur le serveur PROD :&lt;/strong&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Tester la connexion vers SAUVE avec la cl&#233; : &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;ssh -i /home/toto/id_rsa_rsync -p 1234 toto@serveur-sauve.tld&lt;/textarea&gt;&lt;/li&gt;&lt;li&gt; Tester le rsync via ssh + fichier de la cl&#233; priv&#233;e : (dans /home/toto on cr&#233;e un r&#233;p /test avec 1 ou 2 fichiers dedans) &lt;textarea readonly='readonly' cols='40' rows='5' class='spip_cadre spip_cadre_block' dir='ltr'&gt;mkdir test cd test touch fichier1 fichier2 rsync -e &#034;ssh -i /home/toto/.ssh/id_rsa_rsync -p 1234&#034; ./* toto@serveur-sauve.tld:/home/toto&lt;/textarea&gt;
&lt;p&gt;On doit retrouver tous les fichiers de /test de la source dans le dossier /toto du serveur de SAUVE&lt;/p&gt;
&lt;/li&gt;&lt;li&gt; Cr&#233;er un fichier cron_synchro.sh dans /home/toto et le rendre ex&#233;cutable &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;#!/bin/bash rsync -e &#034;ssh -i /home/toto/.ssh/id_rsa_rync -p 1234&#034; -az /home/toto/test/ toto@serveur-sauve.tld:/home/toto&lt;/textarea&gt;&lt;/li&gt;&lt;li&gt; G&#233;n&#233;rer le crontab de toto pour lancer cron.sh (par ex ici &#224; 1h12 toutes les nuits) &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;crontab -e 12 1 * * * cd ~/ &amp;&amp; ./cron_synchro.sh &gt; /dev/null&lt;/textarea&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>G&#233;n&#233;rer un fichier de commandes SVN et GIT pour l'installation d'un ensemble de plugins &#224; partir de ceux d'un SPIP existant</title>
		<link>https://tech.gamuza.fr/Generer-un-fichier-de-commandes-SVN-et-GIT-pour-l-installation-d-un-ensemble-de.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/Generer-un-fichier-de-commandes-SVN-et-GIT-pour-l-installation-d-un-ensemble-de.html</guid>
		<dc:date>2015-09-28T22:54:26Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>clem</dc:creator>


		<dc:subject>Debian</dc:subject>
		<dc:subject>bash</dc:subject>
		<dc:subject>svn</dc:subject>
		<dc:subject>script sh</dc:subject>

		<description>&lt;p&gt;&lt;strong&gt;But du script&lt;/strong&gt; : &#224; partir du r&#233;pertoire des plugins d'un SPIP existant, g&#233;n&#233;rer un script sh qui permet l'installation (par svn checkout... et git clone...) des m&#234;me plugins dans un autre SPIP.&lt;/p&gt;

-
&lt;a href="https://tech.gamuza.fr/-scripts-et-commandes-sh-.html" rel="directory"&gt;Scripts sh&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-debian-+.html" rel="tag"&gt;Debian&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-bash-+.html" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-svn-+.html" rel="tag"&gt;svn&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-script-sh-+.html" rel="tag"&gt;script sh&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Pour le d&#233;tail de la construction de la commande sed (qui est le truc compliqu&#233; de l'affaire...) voir : &lt;br class='autobr' /&gt;
&lt;a href=&#034;http://www.commentcamarche.net/faq/9558-sed-introduction-a-sed-part-iii#effacement-d-une-ligne-et-insertion-plus-loin&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.commentcamarche.net/faq/...&lt;/a&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='33' class='spip_cadre spip_cadre_block' dir='ltr'&gt;#!/bin/bash # # G&#233;n&#232;re un sh avec les &#034;git clone&#034; de tous les plugins d'un SPIP # # chaque ligne du fichier g&#233;n&#233;r&#233;e est de la forme: # git clone https://github.com/nom_repo/nom_plugin.git nom_plugin # # ce fichier sera lanc&#233; dans le rep plugins/ d'un SPIP # # chemin du r&#233;pertoire des plugins du SPIP REP_PLUGINS=./ # chemin du fichier sh &#224; cr&#233;er FICHIER_SH=./dupliquer_plugins.sh # initialiser le fichier echo &#034;# commandes des plugins a installer&#034; &gt; $FICHIER_SH for i in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls $REP_PLUGINS&lt;/code&gt;; do if [ -d $REP_PLUGINS/$i/.git ]; then grep &#034;url&#034; $REP_PLUGINS/$i/.git/config |sed 's/.*url = /git clone /;s/.*\/\([^\/]*\).git$/\0 \1/' &gt;&gt;&gt; fi done # passer le fichier sh en executable chmod +x $FICHIER_SH&lt;/textarea&gt;
&lt;p&gt;Une fois ce script lanc&#233; en &#233;tant dans le sous dossier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;plugins&lt;/code&gt;, on r&#233;cup&#232;re le fichier &lt;strong&gt;dupliquer_plugins.sh&lt;/strong&gt; g&#233;n&#233;r&#233; dont le contenu ressemblera &#224; :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='10' class='spip_cadre spip_cadre_block' dir='ltr'&gt;svn co svn://zone.spip.org/spip-zone/_plugins_/acces_restreint/trunk acces_restreint svn co svn://zone.spip.org/spip-zone/_plugins_/adaptive_images/trunk adaptive_images git clone https://github.com/nursit/home.git home svn co svn://zone.spip.org/spip-zone/_plugins_/agenda/trunk agenda svn co svn://zone.spip.org/spip-zone/_plugins_/alias alias git clone https://github.com/nursit/bank.git bank ...&lt;/textarea&gt;
&lt;p&gt;Il ne reste plus qu'a transf&#233;rer ce fichier dans le r&#233;pertoire &lt;strong&gt;plugins/&lt;/strong&gt; du nouveau SPIP, et le lancer en ligne de commande pour avoir les m&#234;mes plugins install&#233;s.&lt;br class='autobr' /&gt;
On peut &#233;galement d&#233;cider de supprimer un certain nombre de lignes correspondantes aux plugins que l'on ne souhaite pas installer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TODO :&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; ajouter la r&#233;cup&#233;ration de la branch git en cours : cf &lt;a href=&#034;https://stackoverflow.com/a/11868440&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://stackoverflow.com/a/11868440&lt;/a&gt; &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;git rev-parse --abbrev-ref HEAD ou git status | head -1&lt;/textarea&gt;
&lt;p&gt;et int&#233;grer l'appel de branche dans le git clone :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;git clone --branche xxxx url&lt;/textarea&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Alternative si vos plugins ne sont pas install&#233;s en ligne de commande :&lt;/strong&gt;&lt;br class='autobr' /&gt;
voir l'astuce d'Eliaz blog : &lt;a href=&#034;https://www.weblog.eliaz.fr/article118.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Migrer facilement ses plugins d'un SPIP &#224; un autre&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Sortir un fichier texte avec la liste de toutes les URLs des d&#233;pots SVN des plugins d'un SPIP</title>
		<link>https://tech.gamuza.fr/sortir-un-fichier-texte-avec-la-liste-de-toutes-les-urls-des-depots-svn-des-plugins-d-un-spip.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/sortir-un-fichier-texte-avec-la-liste-de-toutes-les-urls-des-depots-svn-des-plugins-d-un-spip.html</guid>
		<dc:date>2015-09-26T17:08:34Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>clem</dc:creator>


		<dc:subject>Debian</dc:subject>
		<dc:subject>bash</dc:subject>
		<dc:subject>svn</dc:subject>
		<dc:subject>script sh</dc:subject>

		<description>&lt;p&gt;&lt;strong&gt;But du script :&lt;/strong&gt; r&#233;cup&#233;rer dans un fichier texte la totalit&#233; des URLs des d&#233;pots SVN d'un SPIP. Cette liste pourra &#234;tre utilis&#233;e pour automatiser l'installation du m&#234;me stock de plugins dans un autre SPIP.&lt;/p&gt;

-
&lt;a href="https://tech.gamuza.fr/-scripts-et-commandes-sh-.html" rel="directory"&gt;Scripts sh&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-debian-+.html" rel="tag"&gt;Debian&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-bash-+.html" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-svn-+.html" rel="tag"&gt;svn&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-script-sh-+.html" rel="tag"&gt;script sh&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;textarea readonly='readonly' cols='40' rows='14' class='spip_cadre spip_cadre_block' dir='ltr'&gt;#!/bin/bash
#
# r&#233;cup&#233;rer un txt avec les URL SVN de tous les plugins du r&#233;pertoire plugins/ d'un SPIP
# # chemin du r&#233;pertoire des plugins du SPIP
REP_PLUGINS=/var/www/ma-mutu.tld/plugins # chemin du fichier txt &#224; cr&#233;er
FICHIER_TXT=/home/clem/liste_urls_svn_plugins.txt svn info $REP_PLUGINS/* |grep &#034;^URL&#034; &gt; $FICHIER_TXT&lt;/textarea&gt;
&lt;p&gt;On peut aller plus loin dans l'automatisation du transfert d'un ensemble de plugins install&#233;s avec SVN en g&#233;n&#233;rant directement le fichier sh de checkout &#224; partir de ce svn info : voir &lt;a href='https://tech.gamuza.fr/Generer-un-fichier-de-commandes-SVN-et-GIT-pour-l-installation-d-un-ensemble-de.html' class=&#034;spip_in&#034;&gt;G&#233;n&#233;rer un fichier de commandes SVN et GIT pour l'installation d'un ensemble de plugins &#224; partir de ceux d'un SPIP existant&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
