Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PB connexion ftp dans un script shell

3 réponses
Avatar
Hervé TOURBEZ
Bonsoir,

Je cherche à écrire un script shell pour sauvegarder un dossier sur un
serveur distant en utilisant une connexion ftp. (Mac OS X 10.4.5)

J'ai testé la connexion avec le script suivant:

#!/bin/bash
ftp -n sunserver << FIN
user nom motdepasse
ls -al
quit
FIN

Mais quand je lance le script à partir du terminal, il ne se passe
rien! Le terminal me rend la main, sans erreur mais sans exécuter
l'instruction ls -al.

Par contre, si j'exécute l'équivalent ligne par ligne, ça
fonctionne... Où est l'erreur?

PS: pourtant c'est bien cette syntaxe qui est utilisée dans l'exemple
sur http://www.xrings.net/xrings/article.php3?id_article=325

3 réponses

Avatar
filh
Hervé TOURBEZ wrote:

Bonsoir,

Je cherche à écrire un script shell pour sauvegarder un dossier sur un
serveur distant en utilisant une connexion ftp. (Mac OS X 10.4.5)

J'ai testé la connexion avec le script suivant:

#!/bin/bash
ftp -n sunserver << FIN
user nom motdepasse
ls -al
quit
FIN

Mais quand je lance le script à partir du terminal, il ne se passe
rien! Le terminal me rend la main, sans erreur mais sans exécuter
l'instruction ls -al.

Par contre, si j'exécute l'équivalent ligne par ligne, ça
fonctionne... Où est l'erreur?


J'ai un script qui utilise quasiment le même genre de choses :

cat << EOF | ftp $site 2>$TMP
bin
mkdir $2
put $file
quit
EOF

Sauf que la connexion se fait en automatique (le user et le mot de passe
sont stockés dans le .nterc

maintenant c'est un ftp de solaris, mais je ne vois pas de raison à ce
qu'il soit différent.

Tu peux peut-être utiliser curl à la place qui te fera des choses
similaires. (Si je refaisais ces scripts maintenant il est probable que
j'utiliserais curl, mais à l'époque curl n'existait pas, on fait ce
qu'on peut avec ce qu'on a).

FiLH

P.S. Oui les macros c'est bien mais ça ne fait pas tout.
--
Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire
une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle.
Roland Barthes.
http://www.filh.org

Avatar
Antoine
Le 26/02/06 23:56, dans , « Hervé
TOURBEZ » a écrit :
Bonjour

Desactive le firewall et ca marchera


Sinon il faut mofifier la regle dans ipfw de la facon suivante

ipfw add 02125 allow tcp from any 20,21 to any dst-port 1024-65535 in




A+


Antoine



Bonsoir,

Je cherche à écrire un script shell pour sauvegarder un dossier sur un
serveur distant en utilisant une connexion ftp. (Mac OS X 10.4.5)

J'ai testé la connexion avec le script suivant:

#!/bin/bash
ftp -n sunserver << FIN
user nom motdepasse
ls -al
quit
FIN

Mais quand je lance le script à partir du terminal, il ne se passe
rien! Le terminal me rend la main, sans erreur mais sans exécuter
l'instruction ls -al.

Par contre, si j'exécute l'équivalent ligne par ligne, ça
fonctionne... Où est l'erreur?

PS: pourtant c'est bien cette syntaxe qui est utilisée dans l'exemple
sur http://www.xrings.net/xrings/article.php3?id_article25


Avatar
Nicolas.MICHEL
Hervé TOURBEZ wrote:

Mais quand je lance le script à partir du terminal, il ne se passe
rien! Le terminal me rend la main, sans erreur mais sans exécuter
l'instruction ls -al.

Par contre, si j'exécute l'équivalent ligne par ligne, ça
fonctionne... Où est l'erreur?


deux choses :

- Pour débugger un script, utilises #!/bin/bash -vx
- Comme l'a dit FiLH, curl est plus simple.

--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas