Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forums MacBidouille _ Technologies Apple _ ftp avec mot de passe contenant @

Écrit par : chupaps 12 Dec 2017, 12:38

Bonjour,

Je me suis un petit script qui me permet de synchroniser les dossiers de plusieurs ftp vers des dossiers en local.
Le script marche impeccablement bien, j'ai meme un fichier a la fin qui me montre quels sont les nouveaux fichiers telechargés.

J'en viens a mon probleme: je bosse pour une nouvelle prod et le mot de passe pour se connecter à ce nouveau ftp contient un "@" et la je n'arrive plus à monter ce nouveau volume.
Je peux bien entendu me connecter via filezilla ou tout autre client ftp mais scruter les dossiers modifiés est une tache tres chronophage.

Donc voila ma question: comment monter ce ftp en tant que volume sur le finder afin de laisser "rsync" faire les comparaisons?

Voici en gros comment est mon script a l'heure actuelle (je repete ca fonctionne très bien!)

mount volume "ftp://user:[email protected]"
set rsync_log to "'fichier_text_modifs_txt'"
set local to "'dossier_local'"
set source to "'dossier_ftp'"

do shell script "echo === Début synchro === >>" & rsync_log
do shell script "echo >>" & rsync_log
do shell script "date >>" & rsync_log
do shell script "echo >>" & rsync_log
do shell script "rsync -av " & dossier_ftp & " " & dossier_local & " >>" & rsync_log & " || echo -n"
do shell script "echo >>" & rsync_log
do shell script "echo === Synchro terminée === >>" & rsync_log
do shell script "echo ------------------------------------------------------------------------------------------ >>" & rsync_log

tell application "Finder"
eject "[email protected]"
end tell
tell application "TextEdit"
activate
open "fichier_text_modifs_txt"
end tell


Merci d'avance

Écrit par : Jaypee 13 Dec 2017, 07:02

Il faut l' URL-encoder %40 dans le cas de l' arobe.
https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/EncodeandDecodeText.html

@+
J-P

Écrit par : chupaps 13 Dec 2017, 08:55

Merci pour ta reponse.
Donc en gros de ce que je comprends pour un mot de passe "p@ss" je dois remplacer par "p%40ss" c'est bien cela?

Lorsque j'essaye de me connecter au server via "cmd+k" j'obtiens une erreur de mot de passe et ceci avec "p@ss" ou "p%40ss"

Pour une commande de type http://ftp%3a%2f/user:p@[email protected] ou http://ftp%3a%2f/user:p%[email protected] le Finder comprend un nom de domain "[email protected]" un user "user" et attends un mot de passe. Je me retrouve avec un mauvais nom de domain.

Bref je nage...smile.gif

Écrit par : No6 15 Dec 2017, 00:03

En bash (ton script est en Bash?) certains caracteres peuvent représenter une commande, il doivent alors être précédé d'un "backslash' s'il sont juste de simple caracteres.
=> transforme ton @ en \@ et tout devrait rentrer d'ans l'ordre.. ?

Psst : "Je me suis un petit script qui me permet " => Je me suis fait un petit script ../

Écrit par : chupaps 15 Dec 2017, 09:10

Citation (No6 @ 15 Dec 2017, 00:03) *
En bash (ton script est en Bash?)

Je suis complètement néophyte, je sais pas ce qui est du bash ou pas.
Mon script est en copie sur la presentation du probleme, il est posé ainsi dans l'editeur applescript.

Citation
=> transforme ton @ en \@ et tout devrait rentrer d'ans l'ordre.. ?

J'ai tenté mais ca ne marche pas.

Citation
Psst : "Je me suis un petit script qui me permet " => Je me suis fait un petit script ../

J'oublie souvent des mots..!

Écrit par : No6 15 Dec 2017, 15:15

Citation (chupaps @ 15 Dec 2017, 09:10) *
Citation (No6 @ 15 Dec 2017, 00:03) *
En bash (ton script est en Bash?)

Je suis complètement néophyte, je sais pas ce qui est du bash ou pas.
Mon script est en copie sur la presentation du probleme, il est posé ainsi dans l'editeur applescript.

Alors il faut que tu regarde dans le doc AppleScript comment on place les caractères spéciaux dans les chaînes de caractères.

je pense que l'utilisation du caractere pipe est indiquée pour remplacer les doubles quotes

Code
mount volume |ftp://user:[email protected]|


comme indiqué dans cette doc, page 28 : http://trad.applescript.free.fr/guides/Guide_AppleScript.pdf


sinon a tu essayé en passant par une variable ??
Code
set Vcnx to "ftp://user:[email protected]"
...
mount volume Vcnx

Écrit par : chupaps 15 Dec 2017, 18:02

Code
mount volume |ftp://user:[email protected]|

Le probleme avec les pipes c'est que j'ai l'impression que ca considere tout ce qui entre les pipes comme une variable.


http://trad.applescript.free.fr/guides/Guide_AppleScript.pdf
La doc indique qu'il faut mettre un \ devant les caracteres speciaux mais lorsque je veux compilé ca me met une erreur de syntaxe

Citation
sinon a tu essayé en passant par une variable ??
Code
set Vcnx to "ftp://user:[email protected]"
...
mount volume Vcnx

Pour cette solution ca revient au meme puisque la variable reprend la même syntaxe.

Je pense que le probleme vient du Finder qui n'arrive pas interpréter ce caractere.

Je planche sur une solution differente: monter le volume ftp via une commande dans le Terminal
J'ai tenté quelque chose comme cela:
Code
mount_ftp user:[email protected] /Volumes/

Je n'ai pas d'erreur qui s'affiche mais je ne vois pas de volume monté non plus!!

J'arrive à me connecter via le Terminal mais le probleme est que je ne peux pas executer rsync avec un ftp.
Je tourne en rond..!


Écrit par : No6 15 Dec 2017, 23:52

et comme ça :

Code
set Vcnx to |ftp://user:[email protected]|
...
mount volume Vcnx
??

Sinon si,faire un rsync pur bash en accès ftp c'est faisable... -> https://serverfault.com/questions/24622/how-to-use-rsync-over-ftp#24833

mais bon, le ftp c'est devenu un peu ancien, pour ce genre de chose on passe par une connexion ssh...

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)