Depuis longtemps, je rame pour le transfert de mes fichiers locaux vers mon hébergeur, l'heure été venue de trouver un autre moyen pour ce faire, histoire de simplifier les choses !
Le but du jeux étant de remplacer mon traditionnel client ftp (gftp) par quelque chose de beaucoup plus simple, monter ce ftp distant comme un simple dossier dans mon répertoire personnel...
Grâce a Curlftpfs, tout cela devient possible, et en plus, avec une facilité déconcertante ! Celui ci utilise le module Fuse (Filesystem in USErspace) qui permet la création de système de fichier dans l'espace utilisteur
Voici la configuration pour l'exercice :
Commençons par installer Curlftpfs (celui ci est dans les dépôts)
Code BASH :
Ensuite, créons le point de montage dans notre répertoire personnel, celui ci s'appellera ftp-local
Code BASH :
Voila, le plus gros du boulot est fait, voyons maintenant la syntaxe à utiliser pour monter ce ftp dans notre dossier local avec Curlftpfs
Code BASH :
L'option que nous devons utiliser étant donné que mon ftp n'est pas publique est l'option user, pour plus d'information sur la foultitude d'options disponible, faites un petit man curlftpfs dans votre console.
Voici comment utiliser l'option user
Code BASH :
Au finale, et pour le cas présent, la commande sera la suivante :
Code BASH :
Et voila, le ftp est désormais monté dans ftp-local et je peux y travailler comme s'il s'agissait d'un dossier quelconque !
mon point de montage se trouvant dans mon répertoire perso, aucun droit particulier m'est nécessaire
Pour démonter le ftp, il suffit simplement de taper dans une console :
Code BASH :
Et voila !
Pour éviter de taper son mot de passe en clair dans la console, il suffit d'éditer, ou de créer, un fichier netrc, celui ci contiendra les infos nécessaire à la connexion ftp (adresse ftp, login+mdp), ce fichier doit se trouver dans le répertoire utilisateur et il doit bien évidement être caché.
En avant !
Code BASH :
Ce fichier se renseigne de la manière suivante :
Code BASH :
Dans mon cas cela donnera :
Code BASH :
Il faut restreindre l'accès a ce fichier :
Code BASH :
Maintenant, il n'est plus nécessaire d'ajouter l'option user à notre ligne de commande, il suffira simplement de dire :
Code BASH :
Avec ça, je peux maintenant monter mon ftp dans mon répertoire perso comme s'il était vraiment dedans !
On peut même ajouter un petit script pour automatiser ça !
Code BASH :
Le but du jeux étant de remplacer mon traditionnel client ftp (gftp) par quelque chose de beaucoup plus simple, monter ce ftp distant comme un simple dossier dans mon répertoire personnel...
Grâce a Curlftpfs, tout cela devient possible, et en plus, avec une facilité déconcertante ! Celui ci utilise le module Fuse (Filesystem in USErspace) qui permet la création de système de fichier dans l'espace utilisteur
Voici la configuration pour l'exercice :
- Un laptop sous Ubuntu Intrepid Ibex (32bit), qui se nommera laptop dans le reste de l'article)
- Un serveur ftp distant bien sur, que j'appellerai mon-ftp.fr, et partant du principe qu'il n'est pas publique, login+mdp seront nécessaires, ceux ci seront : utilisateur=util, mdp=furtif
Commençons par installer Curlftpfs (celui ci est dans les dépôts)
Code BASH :
laptop@laptop:~$ sudo apt-get install curlftpfs
Ensuite, créons le point de montage dans notre répertoire personnel, celui ci s'appellera ftp-local
Code BASH :
laptop@laptop:~$ mkdir ftp-local
Voila, le plus gros du boulot est fait, voyons maintenant la syntaxe à utiliser pour monter ce ftp dans notre dossier local avec Curlftpfs
Code BASH :
curlftpfs ftp:// adresse-du-serveur-ftp point-de-montage -o option(s) à utiliser
L'option que nous devons utiliser étant donné que mon ftp n'est pas publique est l'option user, pour plus d'information sur la foultitude d'options disponible, faites un petit man curlftpfs dans votre console.
Voici comment utiliser l'option user
Code BASH :
user=mon-login-ftp:mon-mot-de-passe-ftpAu finale, et pour le cas présent, la commande sera la suivante :
Code BASH :
laptop@laptop:~$ curlftpfs ftp : //mon-ftp.fr ftp-local -o user=util:furtif
*Sans les espaces entre [url=ftp://adresse-du-serveur*]ftp://adresse-du-serveur*[/url]
Et voila, le ftp est désormais monté dans ftp-local et je peux y travailler comme s'il s'agissait d'un dossier quelconque !
mon point de montage se trouvant dans mon répertoire perso, aucun droit particulier m'est nécessaire
Pour démonter le ftp, il suffit simplement de taper dans une console :
Code BASH :
laptop@laptop:~$ sudo fusermount -u ftp-local
Et voila !
Pour éviter de taper son mot de passe en clair dans la console, il suffit d'éditer, ou de créer, un fichier netrc, celui ci contiendra les infos nécessaire à la connexion ftp (adresse ftp, login+mdp), ce fichier doit se trouver dans le répertoire utilisateur et il doit bien évidement être caché.
En avant !
Code BASH :
laptop@laptop:~$ vi ~/.netrc
Ce fichier se renseigne de la manière suivante :
Code BASH :
machine ftp.mon-serveur.com login USERNAME password PASSWORDDans mon cas cela donnera :
Code BASH :
machine ftp.mon-ftp.fr login util password furtifIl faut restreindre l'accès a ce fichier :
Code BASH :
laptop@laptop:~$ sudo chmod 0600 ~/.netrc
Maintenant, il n'est plus nécessaire d'ajouter l'option user à notre ligne de commande, il suffira simplement de dire :
Code BASH :
laptop@laptop:~$ curlftpfs ftp : //mon-ftp.fr ftp-local
*Sans les espaces entre [url=ftp://adresse-du-serveur*]ftp://adresse-du-serveur*[/url]
Avec ça, je peux maintenant monter mon ftp dans mon répertoire perso comme s'il était vraiment dedans !
On peut même ajouter un petit script pour automatiser ça !
Code BASH :
#!/bin/bash # Script de montage de dossier ftp avec curlftpfs et fuse. # A utiliser avec Nautilus, ou en ligne de commande : # ./mount_ftp ~/dossier_de_montage #Variables à modifier au besoin $FTP=ftp://mon-ftp.fr $LOCAL=/home/util/ftp-local gksudo -p -m "FTP" | curlftpfs $FTP $LOCAL zenity --info --text="Cliquez sur valider pour démonter" fusermount -u $LOCAL
*Sans les espaces entre [url=ftp://adresse-du-serveur*]ftp://adresse-du-serveur*[/url]






