<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://www.momh.fr/spip.php?page=backend.xslt" ?>
<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>momh</title>
	<link>https://momh.fr/</link>
	<description>My Own Memory Hole se veut une sorte de &#171;&#160;vitrine&#160;&#187; de mon parcours et de mon exp&#233;rience mais aussi de mes centres d'int&#233;r&#234;t et constitue donc en quelque sorte ma m&#233;moire en ligne, m&#233;moire virtuelle d&#233;localis&#233;e mais ordonn&#233;e et index&#233;e&#8230;</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://www.momh.fr/spip.php?id_mot=35&amp;page=backend" rel="self" type="application/rss+xml" />




<item xml:lang="fr">
		<title>lftp: automatiser les transferts avec des scripts</title>
		<link>https://www.momh.fr/lftp-automatiser-les-transferts-avec-des-scripts</link>
		<guid isPermaLink="true">https://www.momh.fr/lftp-automatiser-les-transferts-avec-des-scripts</guid>
		<dc:date>2011-09-19T12:41:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Brice Boucard</dc:creator>


		<dc:subject>Linux</dc:subject>
		<dc:subject>lftp</dc:subject>

		<description>
&lt;p&gt;Apr&#232;s avoir pr&#233;sent&#233; le mode interactif de lftp, client &lt;span class=&#034;caps&#034;&gt;FTP&lt;/span&gt; en ligne de commande, et explor&#233; son utilisation en ligne de commande, nous allons maintenant voir qu'il est possible d'automatiser les transferts, que ce soit par le biais d'alias bash ou gr&#226;ce &#224; des scripts propres &#224; lftp. En effet, lftp permet d'appeler des scripts extr&#234;mement simples &#224; &#233;crire dans la mesure o&#249; chaque ligne correspond &#224; une instruction. &lt;br class='autobr' /&gt; Cr&#233;ation d'alias &lt;br class='autobr' /&gt;
Une fois que vous avez mis au point la ligne de&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.momh.fr/blog" rel="directory"&gt;Blog&lt;/a&gt;

/ 
&lt;a href="https://www.momh.fr/linux" rel="tag"&gt;Linux&lt;/a&gt;, 
&lt;a href="https://www.momh.fr/lftp" rel="tag"&gt;lftp&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Apr&#232;s avoir pr&#233;sent&#233; &lt;a href='https://www.momh.fr/introduction-a-lftp-un-client-ftp-en-ligne-de-commande' class=&#034;spip_in&#034;&gt;le mode interactif de lftp&lt;/a&gt;, client &lt;span class=&#034;caps&#034;&gt;FTP&lt;/span&gt; en ligne de commande, et explor&#233; &lt;a href='https://www.momh.fr/utiliser-lftp-sans-le-mode-interactif' class=&#034;spip_in&#034;&gt;son utilisation en ligne de commande&lt;/a&gt;, nous allons maintenant voir qu'il est possible d'automatiser les transferts, que ce soit par le biais d'alias bash ou gr&#226;ce &#224; des scripts propres &#224; lftp. En effet, lftp permet d'appeler des scripts extr&#234;mement simples &#224; &#233;crire dans la mesure o&#249; chaque ligne correspond &#224; une instruction.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Cr&#233;ation d'alias&lt;/h2&gt;
&lt;p&gt;Une fois que vous avez mis au point la ligne de commande permettant de r&#233;aliser les op&#233;rations r&#233;currentes (si vous rencontrez des probl&#232;mes, reportez-vous &#224; &lt;a href='https://www.momh.fr/utiliser-lftp-sans-le-mode-interactif' class=&#034;spip_in&#034;&gt;notre article pr&#233;c&#233;dent&lt;/a&gt;), vous pouvez cr&#233;er un alias bash afin de ne pas avoir &#224; la saisir ou &#224; la rechercher dans votre historique &#224; chaque fois que vous en avez besoin.&lt;/p&gt;
&lt;p&gt;Pour cr&#233;er un alias, il vous faut &#233;diter le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;~/.bash_aliases&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;nano .bash_aliases &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Un alias se pr&#233;sente sous cette forme&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;alias nom_souhait&#233;='commande' &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Prenons la commande lftp permettant de faire, dans notre cas, une sauvegarde de son site, en ne prenant en compte que les nouveaux fichiers tout en ignorant le r&#233;pertoire tmp/, vers notre bureau&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp racine -e &#034;mirror -n -x tmp /www/ /home/bbrice/Bureau/Sauvegarde; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et voici l'alias que l'on peut cr&#233;er&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;alias sitesauv='lftp racine -e &#034;mirror -n -x tmp /www/ /home/bbrice/Bureau/Sauvegarde; quit;&#034;' &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Une fois votre alias ajout&#233; &#224; la fin de votre .bashrc, enregistrez (&lt;kbd&gt;Ctrl+o&lt;/kbd&gt;) puis quittez (&lt;kbd&gt;Ctrl+x&lt;/kbd&gt;) avant de quitter et de relancer votre console. Vous pouvez maintenant utiliser votre alias pour lancer l'op&#233;ration de transfert.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Utiliser les scripts lftp&lt;/h2&gt;
&lt;p&gt;Cette fonctionnalit&#233; de lftp est ce qui en fait mon client &lt;span class=&#034;caps&#034;&gt;FTP&lt;/span&gt; favori, notamment lorsqu'il s'agit de mettre &#224; jour ma collection de bandes dessin&#233;es r&#233;alis&#233;e avec GCstar vers mon serveur pour qu'elle soit accessible en ligne gr&#226;ce &#224; GCweb, un frontend web &#224; GCstar.&lt;/p&gt;
&lt;p&gt;Imaginons le cas o&#249; vous &#234;tes amen&#233;s &#224; r&#233;guli&#232;rement uploader les images de votre r&#233;pertoire local Images vers le r&#233;pertoire images de votre serveur distant.&lt;/p&gt;
&lt;p&gt;Vous pouvez cr&#233;er un fichier, appel&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;upload_images&lt;/code&gt; par exemple, dans lequel vous ne trouveriez que cette ligne&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;mirror -R ~/Images images &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour ex&#233;cuter l'op&#233;ration &#224; partir de votre script, il vous faudra soit&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; une fois connect&#233; &#224; votre serveur &lt;span class=&#034;caps&#034;&gt;FTP&lt;/span&gt;, lancer la commande&#160;:
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;bash&gt; source upload_images &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt; ou bien en utilisant l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-e&lt;/code&gt; permettant de lancer la commande directement&#160;:
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;source upload_images; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;en choisissant bien &#233;videmment le mode d'identification qui vous convient le mieux (directement, avec prompt, &#224; travers un signet).&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Il est &#233;galement possible de r&#233;aliser l'authentification au sein du script&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;open LOGIN:PASSWORD@SERVER mirror -R ~/Images images &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si vous avez un signet pointant vers la racine de votre site, vous pouvez modifier le script de la sorte&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;open NOM_SIGNET mirror -R ~/Images images &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;D&#233;sormais, pour lancer le transfert, il vous suffit de lancer la commande&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp -f upload_images &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;M&#234;me si cette commande est assez simple, vous pouvez en cr&#233;er un alias comme vu pr&#233;c&#233;demment.&lt;/p&gt;
&lt;p&gt;Pour en savoir plus sur l'utilisation des scripts, vous pouvez vous rendre &#224; la section &lt;a href=&#034;http://mewbies.com/lftp/lftp.html#scripts&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Scripts&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;&lt;/a&gt; du tutoriel (en anglais) r&#233;dig&#233; par Peter Matulis.&lt;/p&gt;
&lt;p&gt;Enfin, vous pouvez utiliser &lt;a href=&#034;http://doc.ubuntu-fr.org/cron&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;cron&lt;/a&gt; afin de lancer p&#233;riodiquement et automatiquement une commande, que celle-ci soit un simple alias ou qu'elle fasse appel &#224; un script, les deux m&#233;thodes pouvant d'ailleurs &#234;tre compl&#233;mentaires.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Utiliser lftp sans le mode interactif</title>
		<link>https://www.momh.fr/utiliser-lftp-sans-le-mode-interactif</link>
		<guid isPermaLink="true">https://www.momh.fr/utiliser-lftp-sans-le-mode-interactif</guid>
		<dc:date>2011-09-17T12:34:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Brice Boucard</dc:creator>


		<dc:subject>Linux</dc:subject>
		<dc:subject>lftp</dc:subject>

		<description>
&lt;p&gt;Dans un pr&#233;c&#233;dent article, nous avons pr&#233;sent&#233; le client &lt;span class=&#034;caps&#034;&gt;FTP&lt;/span&gt; en ligne de commande lftp et son utilisation en nous limitant au mode interactif, qui permet de naviguer au sein de l'arborescence distante et des dossiers locaux, de transf&#233;rer des fichiers... le tout de mani&#232;re &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;visuelle&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;. lftp permet cependant de se passer de ce mode interactif gr&#226;ce &#224; l'option -e qui prend pour argument une ou plusieurs commandes, ce qui permet de lancer en une seule commande de multiples t&#226;ches. &lt;br class='autobr' /&gt; Uploader&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.momh.fr/blog" rel="directory"&gt;Blog&lt;/a&gt;

/ 
&lt;a href="https://www.momh.fr/linux" rel="tag"&gt;Linux&lt;/a&gt;, 
&lt;a href="https://www.momh.fr/lftp" rel="tag"&gt;lftp&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Dans &lt;a href='https://www.momh.fr/introduction-a-lftp-un-client-ftp-en-ligne-de-commande' class=&#034;spip_in&#034;&gt;un pr&#233;c&#233;dent article&lt;/a&gt;, nous avons pr&#233;sent&#233; le client &lt;span class=&#034;caps&#034;&gt;FTP&lt;/span&gt; en ligne de commande &lt;a href=&#034;http://lftp.yar.ru/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;lftp&lt;/a&gt; et son utilisation en nous limitant au mode interactif, qui permet de naviguer au sein de l'arborescence distante et des dossiers locaux, de transf&#233;rer des fichiers... le tout de mani&#232;re &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;visuelle&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;. lftp permet cependant de se passer de ce mode interactif gr&#226;ce &#224; l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-e&lt;/code&gt; qui prend pour argument une ou plusieurs commandes, ce qui permet de lancer en une seule commande de multiples t&#226;ches.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Uploader des fichiers&lt;/h2&gt;
&lt;p&gt;Comme nous l'avons vu pr&#233;c&#233;demment, il va donc falloir nous connecter &#224; notre serveur &lt;span class=&#034;caps&#034;&gt;FTP&lt;/span&gt; en utilisant la commande&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;mais en ajoutant &#224; cette commande l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-e&lt;/code&gt; avec pour argument entre guillemets la commande ou les commandes &#224; ex&#233;cuter. Par exemple, pour envoyer un fichier de votre ordinateur vers la racine de votre serveur, vous utiliserez la commande&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;put MON_FICHIER_LOCAL;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Il est &#224; noter que vous pouvez, pour des raisons de s&#233;curit&#233;, ne pas pr&#233;ciser votre mot de passe en clair dans la commande, celui-ci vous &#233;tant alors demand&#233; par un prompt&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN@SERVER -e &#034;put MON_FICHIER_LOCAL;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous pouvez &#233;galement, si vous &#234;tes press&#233; et avez cr&#233;&#233; des signets, vous connecter ainsi&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp SIGNET -e &#034;put MON_FICHIER_LOCAL;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si vous souhaitez quitter lftp suite &#224; votre transfert, il s'agit de rajouter la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;quit&lt;/code&gt; dans l'argument&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;put MON_FICHIER_LOCAL; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si vous d&#233;sirez, uploader votre fichier vers un r&#233;pertoire distant autre que la racine, deux options s'offrent &#224; vous&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; soit vous utilisez la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cd&lt;/code&gt; afin de vous d&#233;placer dans le r&#233;pertoire souhait&#233;&#160;:
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;cd REP_DISTANT; put MON_FICHIER_LOCAL; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt; soit vous utilisez l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-O&lt;/code&gt; de la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;put&lt;/code&gt; qui vous permet de sp&#233;cifier le r&#233;pertoire distant o&#249; uploader le fichier&#160;:
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;put -O REP_DISTANT/ MON_FICHIER_LOCAL; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Si vous d&#233;sirez que le fichier upload&#233; porte un nom diff&#233;rent que le nom du fichier local, il vous faut utiliser l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-o&lt;/code&gt; de la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;put&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;put -O REP_DISTANT/ MON_FICHIER_LOCAL -o NOUVEAU_NOM; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous pouvez bien s&#251;r en une seule commande uploader plusieurs fichiers&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;put -O REP_DISTANT/ MON_FICHIER_LOCAL -o NOUVEAU_NOM MON_FICHIER_LOCAL_2 -o NOUVEAU_NOM_2; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;T&#233;l&#233;charger des fichiers&lt;/h2&gt;
&lt;p&gt;Pour r&#233;cup&#233;rer des fichiers de votre serveur, l'utilisation est similaire si ce n'est qu'il faut utiliser la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;get&lt;/code&gt; &#224; la place de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;put&lt;/code&gt;. Ainsi pour t&#233;l&#233;charger un fichier vers le r&#233;pertoire local courant, il vous faut utiliser la commande suivante&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN@SERVER -e &#034;get MON_FICHIER_DISTANT; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour t&#233;l&#233;charger un fichier vers un r&#233;pertoire local autre que le r&#233;pertoire courant, il vous faut utiliser l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-O&lt;/code&gt; de la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;get&lt;/code&gt; (notez qu'il faut que le r&#233;pertoire existe)&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN@SERVER -e &#034;get -O REPERTOIRE_LOCAL MON_FICHIER_DISTANT; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous pouvez &#233;galement renommer localement le fichier t&#233;l&#233;charg&#233; gr&#226;ce &#224; l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-o&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN@SERVER -e &#034;get MON_FICHIER_DISTANT -o NOM_FICHIER_LOCAL; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous pouvez bien &#233;videmment l&#224; encore t&#233;l&#233;charg&#233; plusieurs fichiers en une seule commande&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN@SERVER -e &#034;get MON_FICHIER_DISTANT -o NOM_FICHIER_LOCAL MON_FICHIER_DISTANT_2 -o NOM_FICHIER_LOCAL_2; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Dossiers, sauvegarde et mise &#224; jour&lt;/h2&gt;
&lt;p&gt;Nous allons maintenant nous int&#233;resser &#224; la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mirror&lt;/code&gt; de lftp qui permet de copier des dossiers de votre ordinateur vers votre serveur et inversement et donc de faire des sauvegardes ais&#233;ment de votre site ou de mettre ce dernier &#224; jour en ne prenant en compte que les nouveaux &#233;l&#233;ments.&lt;/p&gt;
&lt;p&gt;Ainsi pour copier de votre serveur vers votre ordinateur un dossier vous utiliserez la commande suivante&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;mirror REPERTOIRE_DISTANT; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous noterez que le r&#233;pertoire local est cr&#233;&#233; automatiquement. Vous pouvez sp&#233;cifier un r&#233;pertoire local (qui sera &#233;galement cr&#233;&#233; automatiquement) o&#249; l'ensemble des dossiers et fichiers du dossier distant sera copi&#233;&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;mirror REPERTOIRE_DISTANT REPERTOIRE_LOCAL; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour copier un dossier de votre ordinateur vers la racine de votre serveur, il vous faudra alors utiliser l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-R&lt;/code&gt; de la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mirror&lt;/code&gt; comme ceci&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;mirror -R REPERTOIRE_LOCAL; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si le r&#233;pertoire n'existe pas sur votre serveur, il sera cr&#233;&#233; automatiquement. Vous pouvez sp&#233;cifier un r&#233;pertoire de destination sur votre serveur qui sera l&#224; aussi cr&#233;&#233; automatiquement s'il n'existe pas&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;mirror -R REPERTOIRE_LOCAL REPERTOIRE_DISTANT; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Notez bien que si vous ajoutez un slash (/) &#224; la fin du nom du r&#233;pertoire distant, le r&#233;pertoire local sera cr&#233;&#233; &#224; l'int&#233;rieur du r&#233;pertoire cible sur le serveur. Comparez&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp racine -e &#034;mirror -R test testdistant;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;qui donne sur le serveur&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;cd testdistant/ &amp;&amp; cls test.html test2.html &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt; et
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp racine -e &#034;mirror -R test testdistant/;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;qui donne sur le serveur&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;cd testdistant/ &amp;&amp; cls test/ cd test/ &amp;&amp; cls test.html test2.html &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Sauvegarde de site&lt;/h2&gt;
&lt;p&gt;Si vous souhaitez r&#233;aliser une sauvegarde int&#233;grale de votre site depuis la racine, vous pouvez utiliser cette commande&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;mirror; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous pouvez sp&#233;cifier les r&#233;pertoires &#224; ignorer lors de la copie en utilisant l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-x&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;mirror -x DOSSIER_IGNORE -x DOSSIER_IGNORE_2 ; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous pouvez par la suite limiter la sauvegarde aux seuls fichiers nouveaux (attention&#160;: si vous avez ignor&#233; des dossiers, il vous faudra les ignorer &#224; nouveau) gr&#226;ce &#224; l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-n&lt;/code&gt; (ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;--only-newer&lt;/code&gt;)&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER -e &#034;mirror -n; quit;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Mettre &#224; jour son site&lt;/h2&gt;
&lt;p&gt;La commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mirror&lt;/code&gt; associ&#233;e &#224; son option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-n&lt;/code&gt; est particuli&#232;rement utile lorsque l'on souhaite uploader de mani&#232;re r&#233;guli&#232;re le contenu d'un dossier local vers notre serveur afin de mettre &#224; jour notre site. Ainsi la premi&#232;re fois, il me suffit de saisir la commande&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp racine -e &#034;mirror -R test testdistant;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ensuite, pour n'ajoute que les contenus nouveaux, il me suffit de faire&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp racine -e &#034;mirror -Rn test testdistant;&#034; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous verrons dans &lt;a href='https://www.momh.fr/lftp-automatiser-les-transferts-avec-des-scripts' class=&#034;spip_in&#034;&gt;un prochain article&lt;/a&gt; que l'on peut automatiser les transferts soit en passant par des alias soit par le biais de scripts propres &#224; lftp.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Introduction &#224; lftp, un client FTP en ligne de commande</title>
		<link>https://www.momh.fr/introduction-a-lftp-un-client-ftp-en-ligne-de-commande</link>
		<guid isPermaLink="true">https://www.momh.fr/introduction-a-lftp-un-client-ftp-en-ligne-de-commande</guid>
		<dc:date>2011-09-16T12:22:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Brice Boucard</dc:creator>


		<dc:subject>Linux</dc:subject>
		<dc:subject>lftp</dc:subject>

		<description>
&lt;p&gt;lftp est un &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#8239;programme en ligne de commande de transfert de fichiers pour Unix et syst&#232;mes d'exploitation apparent&#233;s [&#8230;] &#233;crit par Alexander Lukyanov et [&#8230;] distribu&#233; sous Licence publique g&#233;n&#233;rale &lt;span class=&#034;caps&#034;&gt;GNU&lt;/span&gt;. &lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; [1] Parmi ses tr&#232;s nombreuses fonctionnalit&#233;s, lftp permet de &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#8239;r&#233;pliquer r&#233;cursivement une arborescence enti&#232;re de r&#233;pertoires, l'enregistrement de signets d'adresses et la capacit&#233; &#224; reprendre un t&#233;l&#233;chargement arr&#234;t&#233;&#8239;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;. De plus, lftp &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#8239;peut enti&#232;rement s'ins&#233;rer dans un script au&#160;(&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.momh.fr/blog" rel="directory"&gt;Blog&lt;/a&gt;

/ 
&lt;a href="https://www.momh.fr/linux" rel="tag"&gt;Linux&lt;/a&gt;, 
&lt;a href="https://www.momh.fr/lftp" rel="tag"&gt;lftp&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;&lt;a href=&#034;http://lftp.yar.ru/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;lftp&lt;/a&gt; est un &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#8239;&lt;i&gt;programme en ligne de commande de transfert de fichiers pour Unix et syst&#232;mes d'exploitation apparent&#233;s [&#8230;] &#233;crit par Alexander Lukyanov et [&#8230;] distribu&#233; sous Licence publique g&#233;n&#233;rale &lt;span class=&#034;caps&#034;&gt;GNU&lt;/span&gt;.&#8239;&lt;/i&gt;&#8239;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; &lt;a href=&#034;http://fr.wikipedia.org/wiki/Lftp&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;[1]&lt;/a&gt; Parmi ses tr&#232;s nombreuses fonctionnalit&#233;s, lftp permet de &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#8239;&lt;i&gt;r&#233;pliquer r&#233;cursivement une arborescence enti&#232;re de r&#233;pertoires, l'enregistrement de signets d'adresses et la capacit&#233; &#224; reprendre un t&#233;l&#233;chargement arr&#234;t&#233;&lt;/i&gt;&#8239;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;. De plus, lftp &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#8239;&lt;i&gt;peut enti&#232;rement s'ins&#233;rer dans un script au lieu d'&#234;tre utilis&#233; de mani&#232;re interactive par l'utilisateur.&lt;/i&gt;&#8239;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Je viens de d&#233;couvrir ce programme et m'en sers uniquement (pour le moment du moins) comme client &lt;span class=&#034;caps&#034;&gt;FTP&lt;/span&gt; et de mani&#232;re restreinte au vu de ses tr&#232;s nombreuses fonctionnalit&#233;s&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; cet article se contentera donc de vous aider dans vos premiers pas.&lt;/p&gt;
&lt;p&gt;Avant de commencer, il faut l'intaller&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;sudo apt install lftp &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous pouvez maintenant lancer lftp:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Mais que faire maintenant&#8230;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Premi&#232;re connexion&lt;/h2&gt;
&lt;p&gt;Une fois que vous avez ouvert lftp, vous vous trouvez face &#224; ce prompt&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp :~&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour vous connecter &#224; votre serveur, il vous faut utiliser la commande suivante [dans le reste de cet article, avant chaque commande, j'ajouterai la &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;fl&#232;che&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; (&gt;) du prompt]&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; open -u LOGIN SERVER &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Une fois le mot de passe saisi, vous devriez obtenir un prompt correspondant &#224; ceci&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN@SERVER:~&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous &#234;tes maintenant connect&#233; &#224; votre serveur.&lt;/p&gt;
&lt;p&gt;Il est &#224; noter que vous pouvez lancer lftp tout en vous connectant &#224; votre serveur, en une seule commande, d'au moins deux fa&#231;ons&#160;:&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; la commande suivante vous demandera votre mot de passe que vous aurez alors &#224; taper sans qu'il n'apparaisse &#224; l'&#233;cran&#160;:
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp -u LOGIN SERVER &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt; cette commande par contre, vous permet de tout faire d'un seul coup&#160;:
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp LOGIN:PASSWORD@SERVER &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Il est encore possible de faire plus simple. Une fois connect&#233; &#224; votre serveur, vous pouvez cr&#233;er un signet [voir ci-dessous] qui pointe vers votre racine (le r&#233;pertoire de base)&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; bookmark add NOM &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Bien &#233;videmment vous remplacez &lt;span class=&#034;caps&#034;&gt;NOM&lt;/span&gt; par le nom que vous souhaitez. Ainsi, pour lancer lftp et vous connecter vous n'aurez plus qu'&#224; saisir la commande suivante&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lftp NOM &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour vous d&#233;connecter, utilisez une des trois commandes suivantes&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; quit &gt; exit &gt; bye &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Navigation&lt;/h2&gt;
&lt;p&gt;La navigation au sein de votre serveur avec lftp fonctionne exactement comme celle au sein de vos dossiers sur votre poste de travail avec le terminal et en reprend en partie les commandes. Notez que vous b&#233;n&#233;ficiez de l'autocompl&#233;tion tant au niveau des commandes que des noms de fichiers avec la touche &lt;kbd&gt;Tab&lt;/kbd&gt;.&lt;/p&gt;
&lt;p&gt;Avant d'aller plus loin, appuyer deux fois sur la touche &lt;kbd&gt;Tab&lt;/kbd&gt; permet de voir l'ensemble des commandes disponibles&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; parmi elles, la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;help&lt;/code&gt; qui lanc&#233;e permet de voir l'ensemble des fonctions avec leur utilisation&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; help !&lt;commande-shell&gt; (commandes) alias [&lt;nom&gt; [&lt;valeur&gt;]] attach [PID] bookmark [SOUS-COMMANDE] cache [SOUS-COMMANDE] cat [-b] &lt;fichiers&gt; cd &lt;r&#233;p-dis&gt; chmod [OPTS] mode fichier... close [-a] [re]cls [opts] [chemin/][motif] debug [OPTS] [&lt;level&gt;|off] du [options] &lt;r&#233;pertoires&gt; edit [OPTS] &lt;file&gt; exit [`|bg] get [OPTS] &lt;fichier-distant&gt; -o &lt;fichier-local&gt;] glob [OPTS] &lt;cmd&gt; &lt;args&gt; help [&lt;cmd&gt;] historique : -w fichier|-r fichier|-c|-l [num] jobs [-v] [&lt;job_no...&gt;] kill all|&lt;num&gt; lcd &lt;r&#233;pertoire-local&gt; lftp [OPTS] &lt;site&gt; ln [-s] &lt;file1&gt; &lt;file2&gt; ls [&lt;args&gt;] mget [OPTS] &lt;fichiers&gt; mirror [OPTS] [distant [local]] mkdir [OPTS] &lt;dirs&gt; module nom [args] more &lt;fichiers&gt; mput [OPTS] &lt;fichiers&gt; mrm &lt;fichiers&gt; mv &lt;fichier1&gt; &lt;fichier2&gt; mmv [OPTS] &lt;files&gt; &lt;target-dir&gt; [re]nlist [&lt;args&gt;] open [OPTS] &lt;site&gt; pget [OPTS] &lt;fichier-distant&gt; [-o &lt;fichier-local&gt;] put [OPTS] &lt;fichier-local&gt; [-o &lt;fichier-distant&gt;] pwd [-p] queue [OPTS] [&lt;cmd&gt;] quote &lt;cmd&gt; repeat [OPTS] [d&#233;lai] [commande] rm [-r] [-f] &lt;fichiers&gt; rmdir [-f] &lt;r&#233;pertoires&gt; scache [&lt;num_session&gt;] set [OPT] [&lt;var&gt; [&lt;val&gt;]] site &lt;site-cmd&gt; source &lt;fichier&gt; torrent [OPTS] &lt;file|URL&gt;... user &lt;user|URL&gt; [&lt;pass&gt;] wait [&lt;num_travail&gt;] zcat &lt;fichiers&gt; zmore &lt;fichiers&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La commande help peut prendre pour argument le nom d'une autre commande ce qui permet d'obtenir un descriptif sur cette derni&#232;re&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; help cls &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;De plus, les commandes semblables &#224; celles que vous utilisez localement, sont &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;inversables&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; en les faisant pr&#233;c&#233;d&#233; du caract&#232;re &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;!&lt;/code&gt;. Ainsi, si pour lister les &#233;l&#233;ments pr&#233;sents sur votre serveur, vous utilisez cette commande&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; ls &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;pour lister les fichiers sur votre ordinateur vous utiliserez&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; !ls &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Bien s&#251;r, il est possible d'utiliser des options et des arguments&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; ainsi&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; !ls -al REP/ &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous noterez que par d&#233;faut les options &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-a&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-l&lt;/code&gt; sont inutiles c&#244;t&#233; serveur, la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls&lt;/code&gt; les appelant automatiquement. Si vous souhaitez lister les fichiers de votre serveur et obtenir un simple listing, utilisez la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cls&lt;/code&gt; qui elle aussi peut prendre un chemin comme argument&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; cls REP/ &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour afficher r&#233;cursivement le contenu du r&#233;pertoire courant ou sp&#233;cifi&#233; en argument, vous pouvez &#233;galement utiliser la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;find&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pour naviguer dans les r&#233;pertoires distants ou locaux&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; cd REP/ &gt; !cd REP &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Par contre avec cette derni&#232;re commande (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;!cd REP/&lt;/code&gt;) le changement de dossier local n'est que temporaire&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; pour que le changement de dossier local soit &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;retenu&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;, il faut utiliser la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;lcd&lt;/code&gt;&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; lcd REP/ &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si vous ne risquez pas de vous perdre dans les r&#233;pertoires de votre serveur du fait du prompt, cela peut arriver sur votre poste&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; pour conna&#238;tre le r&#233;pertoire local o&#249; vous vous trouvez&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; !pwd &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Il est possible de combiner plusieurs commandes&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; cd REP/ &amp;&amp; ls &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Par contre, pour faire de m&#234;me localement, il ne faut pas &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#233;chapper&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; (ajout du caract&#232;re&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;!) la seconde commande&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; !cd REP/ &amp;&amp; ls &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Signets&lt;/h2&gt;
&lt;p&gt;Comme nous l'avons d&#233;j&#224; &#233;voqu&#233;, lftp propose un syst&#232;me de signets (bookmarks). Pour cr&#233;er un signet sur le r&#233;pertoire courant, il faut utilise la commande&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; bookmark add NOM &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour ensuite vous rendre &#224; ce signet&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; open NOM &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour lister l'ensemble des signets disponibles, vous pouvez utiliser la sous-commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;list&lt;/code&gt; mais vous pouvez vous en passer&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; bookmark &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour effacer un signet&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; bookmark delete NOM &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous pouvez &#233;galement &#233;diter directement la liste des signets, lftp ouvrant alors soit &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vi&lt;/code&gt; soit &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;emacs&lt;/code&gt; (selon votre configuration)&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; bookmark edit &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Envoi et r&#233;cup&#233;ration de donn&#233;es&lt;/h2&gt;
&lt;p&gt;Pour copier un fichier situ&#233; sur votre serveur vers le dossier local courant, il suffit de lancer la commande&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; get FILE &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Par d&#233;faut, lftp attribue au fichier local le m&#234;me nom que le fichier distant que l'on a copi&#233;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; pour rem&#233;dier &#224; cela, il faut alors utiliser l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-o nom_local&lt;/code&gt;. De plus, il est possible de t&#233;l&#233;charger plusieurs fichiers &#224; la fois (tout en leur attribuant un nom local diff&#233;rent de leur nom distant) et de sp&#233;cifier le r&#233;pertoire local o&#249; t&#233;l&#233;charger les fichier (option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-O base&lt;/code&gt;)&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; get -O REP_LOCAL/ FICHIER_DISTANT1 -o NOM_LOCAL1 FICHIER_DISTANT2 -o NOM_LOCAL2 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour envoyer un fichier local vers le r&#233;pertoire courant de votre serveur, il faut utiliser la commande put&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; put FILE &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Comme pour la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;get&lt;/code&gt;, il est possible d'uploader plusieurs fichiers tout en les renommant vers un r&#233;pertoire sp&#233;cifique en une seule commande&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; put -O REP_DISTANT/ FICHIER_LOCAL1 -o NOM_DISTANT1 FICHIER_LOCAL2 -o NOM_DISTANT2 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si vous avez besoin de cr&#233;er un dossier [ou plusieurs], il vous faudra utiliser la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mkdir&lt;/code&gt; (elle aussi &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;inversable&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; avec&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;!)&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; mkdir REP [REP2 REP3] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour effacer un fichier [ou plusieurs], il faudra alors utiliser la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rm&lt;/code&gt; (&#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;inversable&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; aussi bien &#233;videmment)&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; pour effacer un dossier il faudra alors utiliser l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-r&lt;/code&gt; (mais fa&#238;tes attention&#8230;)&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; rm FILE [FILE2 FILE3] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Il est &#233;galement possible de dupliquer un r&#233;pertoire distant vers le r&#233;pertoire local et inversement gr&#226;ce &#224; la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mirror&lt;/code&gt;. Pour dupliquer un r&#233;pertoire distant dans le r&#233;pertoire local courant&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; mirror REP_DISTANT &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Notez que le r&#233;pertoire local est cr&#233;&#233; automatiquement. Vous pouvez cependant sp&#233;cifier un r&#233;pertoire local (sans l'avoir cr&#233;&#233; pr&#233;c&#233;demment) dans lequel le r&#233;pertoire distant sera copi&#233;&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; mirror REP_DISTANT REP_LOCAL &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;L'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-R&lt;/code&gt; permet de dupliquer un r&#233;pertoire local vers un r&#233;pertoire distant&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; mirror -R REP_LOCAL/ REP_DISTANT &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Attention&lt;/strong&gt;&#160;: si vous ajoutez un slash &#224; la fin de REP_DISTANT le r&#233;pertoire local sera cr&#233;&#233; dans ce r&#233;pertoire distant&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;; un exemple valant parfois mieux qu'un long discours, constatez la diff&#233;rence entre&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; mirror -R TEST/memoire/ TEMPtest [...] &gt; cd &gt; cd TEMPtest/ &amp;&amp; cls css/ images/ index.php javascript/ maps/ menu.php pages/ stats.php &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;et&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; mirror -R TEST/memoire/ TEMPtest/ [...] &gt; cd TEMPtest/ &amp;&amp; cls memoire/ &gt; cd TEMPtest/memoire &amp;&amp; cls css/ images/ index.php javascript/ maps/ menu.php pages/ stats.php &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Parmi les nombreuses options de la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mirror&lt;/code&gt;, nous retenons celle permettant de limiter le transfert aux seuls nouveaux fichiers, l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-n&lt;/code&gt; (ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;--only-newer&lt;/code&gt;)&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&gt; mirror -R TEST/memoire/ TEMPtest Total : 21 r&#233;pertoires, 122 fichiers, 0 liens symboliques Nouveau : 122 fichiers, 0 liens symboliques [...] [//On cr&#233;&#233; un fichier] &gt; !touch TEST/memoire/TEST.php [//On relance la duplication avec l'option -n] &gt; mirror -Rn TEST/memoire/ TEMPtest Total : 21 r&#233;pertoires, 123 fichiers, 0 liens symboliques Nouveau : 1 fichier, 0 liens symboliques &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cet article s'ach&#232;ve ici, dans la mesure o&#249; je suis presque &#224; bout de ce que je connais de lftp et o&#249; cet article est d&#233;j&#224; bien assez long&#8230; La suite &lt;a href='https://www.momh.fr/utiliser-lftp-sans-le-mode-interactif' class=&#034;spip_in&#034;&gt;au prochain &#233;pisode&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="https://www.momh.fr/IMG/tex/test_decompte.tex" length="32205" type="text/x-tex" />
		

	</item>



</channel>

</rss>
