# Utiliser le terminal pour monter du FTP en -r-w dans le Finder



## Leyry Hynemonth (21 Décembre 2005)

Bonjour .....

"Le Finder ne peut pas écrire sur du FTP", ça tout le monde le sais.


Mais la commande ftp du terminal permet de faire des transferts dans les deux sens avec du FTP.

Ma question est la suivante : Est-ce que la connexion en lecture & écriture, à un FTP via le terminal peut-être "récupérée" et "montée" (Plus globalement, le mettre dans /Volumes ) comme un simple volume, par la commende mount ? (Ou autre...)  



Au fait, je suis au bon endroit pour poster ça ? :rose: 


Merci pour vos réponses d'experts.  :love:


----------



## p4bl0 (21 Décembre 2005)

Pourquoi ne pas utiliser Cyberduck, c'est un client ftp libre, qui marche super bien 


sinon pour ta question je ne pense pas que ce soit faisable... mais je laisse les experts répondrent


----------



## Leyry Hynemonth (21 Décembre 2005)

Pourquoi..........

1: chez moi, CyberDuck ne marche qu'une fois sur 5 (à cause d'un  autre logiciel.... je n'en dirais pas plus).

2: J'ai besoin de ne pas avoir recours à un logiciel tiers.


Voilà, pourquoi. 

Merci pour ta réponse....


----------



## PA5CAL (21 Décembre 2005)

Le protocole FTP étant ce qu'il est (on a d'ailleurs une vision très précise des commandes quand on l'utilise en direct dans Terminal) je ne pense pas que les logiciels permettant d'uploader en direct des fichiers sur un serveur fassent différemment de ce que fait Cyberduck.

Si tu ne veux pas avoir recours à un logiciel tiers, je pense (mais je me trompe peut-être) qu'il faudra te cantonner à la commande "ftp" dans Terminal. Ce n'est pas compliqué, puisque les seules commandes à connaître sont:
- "open" pour se connecter sur un serveur FTP
- "send" pour uploader un fichier
- "close" pour se déconnecter du serveur FTP
- "quit" pour quitter "ftp"
Inutile de s'embêter plus. Quand "ftp" a besoin d'un paramètre (un nom de serveur ou de fichier, un mot de passe, etc.) il le demande à l'utilisateur.
Attention toutefois. Pour des raisons de sécurité, les connexions sont temporaires. Au bout d'un certain temps, assez court, la liaison avec le serveur FTP est automatiquement coupée, et il faut se reconnecter (avec login et mot de passe) pour continuer.


----------



## Leyry Hynemonth (21 Décembre 2005)

Merci de ta réponse, mais c'est à coté de ce que je veut faire. (En fait, c'est ce que je fais actuellement)


----------



## FjRond (21 Décembre 2005)

À ma connaissance, la commande ftp du Terminal ne permet pas de monter le serveur ftp comme fait le finder. À quoi cela peut-il bien être utile, quand on peut si facilement se promener sur le serveur avec les commandes de Terminal? (ce n'est qu'une question pour en apprendre plus).


----------



## PA5CAL (21 Décembre 2005)

FjRond a dit:
			
		

> À quoi cela peut-il bien être utile, quand on peut si facilement se promener sur le serveur avec les commandes de Terminal?


A faire les transferts de fichiers en un clic ou en un glissé de souris, comme dans tout le reste de l'interface graphique du reste.

L'emploi de Terminal est  ergonomiquement plus difficile (certains diraient "d'un autre âge") : cela nécessite l'emploi intensif du clavier, plus lent et moins intuitif, et suppose des connaissances informatiques spécifiques. Cela va à l'encontre d'une utilisation de l'ordinateur par monsieur tout-le-monde.


----------



## FjRond (22 Décembre 2005)

PA5CAL a dit:
			
		

> A faire les transferts de fichiers en un clic ou en un glissé de souris, comme dans tout le reste de l'interface graphique du reste.
> 
> L'emploi de Terminal est  ergonomiquement plus difficile (certains diraient "d'un autre âge") : cela nécessite l'emploi intensif du clavier, plus lent et moins intuitif, et suppose des connaissances informatiques spécifiques. Cela va à l'encontre d'une utilisation de l'ordinateur par monsieur tout-le-monde.


D'accord, mais dans ce cas, je crains qu'il ne faille complètement renoncer au Terminal et utiliser un logiciel tiers (RBrowser...).
Je trouve que, bien souvent, le clavier est une solution plus rapide. Mais pas toujours, c'est vrai.


----------



## Leyry Hynemonth (22 Décembre 2005)

FjRond a dit:
			
		

> À ma connaissance, la commande ftp du Terminal ne permet pas de monter le serveur ftp comme fait le finder.



Effectivement : Il ne peut pas monter de server comme le fait le finder, car le finder ne monte rien. L'action de montage de volume sous Mac OS X se fait par des commandes Darwin (à défaut de dire Unix).



> À quoi cela peut-il bien être utile, quand on peut si facilement se promener sur le serveur avec les commandes de Terminal?





> A faire les transferts de fichiers en un clic ou en un glissé de souris, comme dans tout le reste de l'interface graphique du reste.



=>Exellente réponse. Je rajouterais que c'est aussi pour arriver à faire quelque chose que les seules personnes qui sont arrivés à faire se gardent bien de partager... et les autres cherchent encore.

L'idée est en fait plutôt de berner le Finder en lui faisant écrire dans un volume virtuel de format Unix, comme il le ferait dans une image .dmg .
Et par derrière, il y aurais un commende du style mount -t ufs -w /dev/ftp0 /Volumes/"Server FTP"
lancée par un simple applescript, sous réserve d'avoir établi un connexion avec un server FTP.


----------



## p4bl0 (23 Décembre 2005)

n'est-il pas possible de faire ça avec les actions de dossier : quand on pose un fichiers dans le dossiers, apple script fait un "do shell scrip 'ftp ..........." 


c'est possible comme ça ?


----------



## FjRond (23 Décembre 2005)

Il est vrai que je n'utilise pas souvent le ftp, si ce n'est pour aller chercher des fichiers sur le serveur du CTAN, ou pour aller sur mon propre espace d'hébergement. Et cd, put et get me suffisent.


----------



## Leyry Hynemonth (23 Décembre 2005)

truk2oof a dit:
			
		

> n'est-il pas possible de faire ça avec les actions de dossier : quand on pose un fichiers dans le dossiers, apple script fait un "do shell scrip 'ftp ..........."
> 
> 
> c'est possible comme ça ?




Hum.... intéressant....    

Après test d'application :

C'est bien pour placer des fichiers sur le serveur FTP (Grâce à un simple Drag'n'Drop sur le dossier. Les actions de dossiers faisant le reste.) Mais pour en faire descendre, c'est déjà plus compliqué. Et il me manque la navigation à travers les fichiers qui sont à distance...  J'ai regardé un peut le man ftp, il ne semble pas faire d'alias de ce qu'il y à sur le serveur ftp. Ce qui aurais permis de régler un peut le problème.....

Mais je suis loin d'être un grand connaisseur de l'AppleScript

Merci beaucoup pour ta réponse


----------



## Feyd (10 Janvier 2006)

Pour pouvoir monter un volume sur un site FTP voici la commande :

mount -t ftp -w f t p ://user : password@ftp.monsite.fr /Volumes/ce_que_tu_veux

Attention le sous repertoire "ce_que_tu_veux" doit exister dans /Volumes.
les espaces sur f t p c'est pour pas que ce message soit interpreté comme un lien

Ceci dit le volumes monter ainsi sera toujours READ ONLY car la fonction interne "mount_ftp" doit verouiller l'ecriture. en effet pour info l'option "-t ftp" fait appelle à "mount_ftp" à la place de "mount".idem pour "-t ufs" -> "mount_ufs" ...

Donc la solution serait de remplacer mount_ftp par un autre mount_ftp venant d'unix ou compiler pour Darwin.

voilà.


----------



## p4bl0 (12 Janvier 2006)

Du coup, je me fait une dropplet applescript ou j'ai juste à glisser les fichiers dessus, puis ils sont envoyer vers le serveur ftp !

mais j'y arrive pas bien !
 voilà mon code pour le moment

```
on open (liste_des_fichiers)
	activate
	repeat with fichier in liste_des_fichiers
		do shell script "PROBLEME"
	end repeat
end open
```
Mon probleme, c'est que je doit en une seul ligne, me connecter au serveur, entrer mon login, mot de passe, envoyer le fichier et me deconnecter !

comment faire ?


----------



## bompi (12 Janvier 2006)

Pourquoi une seule ligne ? Si tu écris un script (en PERL ou bash ou ruby ou python) et que tu l'appelles en passant les paramètre qui vont bien, cela ne marche pas ?


----------



## p4bl0 (13 Janvier 2006)

ben, je connais pas Perl, ni Python, mais bash à peu près, je doit faire comment ?

parce qu' on ne peut pas faire par exemple

```
ftp server
user
pass
```
car il execute d'abord ftp, et attend la fin de la commandes ftp il execute les lignes suivantes, pareil avec des ;


je suis nul... faut faire comment steuplé ?


À moins que ce ne soit faisable directement en AppleScript ?


----------



## bompi (13 Janvier 2006)

Avec la commande ftp fournie par mac OS X, voici un petit exemple :

```
ftp -n << EOF
open ftp.jussieu.fr
user anonymous brol@free.fr
bin
cd /pub/linux/mac
get notes.vmlinux
bye
EOF
```

bin : c'est pour passer en mode de transfert binaire (c'est mieux)
bye : pour quitter proprement

Là, on se connecte au site de Jussieu, on se balade et on descend un fichier. Pour monter un fichier, ce serait 'put'.

Il te suffit de mettre ça dans un script, de passer en paramètre ce qu'il faut (serveur, user, pwd, file) et de les mettre à la place des valeurs 'en dur' ci-dessus et hop !

PS : l'adresse mail est une fausse (tant pis pour les spammeurs  )


----------



## p4bl0 (13 Janvier 2006)

bompi a dit:
			
		

> Avec la commande ftp fournie par mac OS X, voici un petit exemple :
> 
> ```
> ftp -n << EOF
> ...


merci beaucoup !! 
y a-t-il moyen de mettre un mot de passe  (c'est pour se connecter à un compte free)


----------



## p4bl0 (13 Janvier 2006)

c'est bon j'ai trouver !

pour ceux qui veulent savoir :

```
ftp -n << EOF
open ftpperso.free.fr
user _user_ _pass_
bin
cd /rep
put test.txt
bye
EOF
```


----------



## hegemonikon (20 Janvier 2006)

Il y a aussi _lftp_ qui remplace avantageusement le _ftp_ de l'OS (ça s'installe facilement avec _fink_ ou _darwinports_) et (entre autres) sa fonction de _mirrorring_


----------



## babouba (9 Juillet 2008)

Bonjour, j'essaie de faire un dropplet AppleScript à partir de vos lignes de codes, mais j'ai quelques soucis...
Je n'ai d'ailleurs pas compris si p4bl0 avait réussit à en faire un.
Il faudrait obtenir l'adresse du fichiers (dossier), puis l'écrire dans "put _le fichier_".
Mais connaissances dans ces deux languages (AppleScript et Bash) sont très limitées donc un petit coup de pouces serait super. 

on open names
	tell application "Terminal"
		activate
		do script "ftp -n  << EOF" in window 1
		do script "open ftpperso.free.fr" in window 1
		do script "user _user_ _pass_" in window 1
		do script "bin" in window 1
		do script "cd /" in window 1
		do script "put _le fichiers_" in window 1
		do script "bye" in window 1
		do script "EOF" in window 1
	end tell
end open


----------



## jcezanna54 (19 Juin 2010)

Bonjour,



bompi a dit:


> Avec la commande ftp fournie par mac OS X, voici un petit exemple :
> 
> ```
> ftp -n << EOF
> ...



Ecrire le login et le mot de passe dans un script n'ait pas, IMHO, une saine procédure.
Pour les connexions automatiques avec ftp , éventuellement vers différentes machines gérées individuellement , il faut avoir un fichier .netrc (faire man netrc pour les détails).
Ce fichier doit avoir les permissions rw----- (600 en octal) et ftp refuse de l'utiliser sinon.

Sinon, l'intérêt d'avoir un montage en lecture-écriture permettrait de lancer des scripts shell permettant d'utiliser tous les outils d'unix.
Exemple: recopier un fichier index.php dans tous les répertoires :
find $DIRFTP -type d | sed 's,^,cp /tmp/index.php ,' | sh -x

Il y a d'autres manières de faire, mais ceci n'est qu'un exemple....


----------

