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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
Hervé TOURBEZ <herve.tourbez@free.fr> 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
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
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
Le 26/02/06 23:56, dans 5ub402ttbto2onc7rtporamb6df6f18aaj@4ax.com, « Hervé
TOURBEZ » <herve.tourbez@free.fr> 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
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
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
Hervé TOURBEZ <herve.tourbez@free.fr> 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
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