Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/03/2007, 10h02   #1
Invité de passage
 
Inscription : décembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 12
Points : 2
Points : 2
Par défaut Excecution automatique d'un transfert ftp en shell

bonjour, j'essaie de faire un script en simple shell qui me connecte à un ftp et récupère la liste de tous les fichiers qu'il contient.
J'arrive à me connecter mais impossible d'exécuter quoi que ce soit après la connection car le script se termine inopinément..
Voilà mon code:

Code :
1
2
3
4
5
6
7
8
 
#! /bin/sh
ftp -nv ftp.domain.com << EOF
user xxx xxx
bin
pwd
quit
echo "script terminé"
quand je le lance il me connecte, passe en "binary mode", me renvoie le répertoire distant, puis le script se termine..
pourquoi le "echo "script terminé"" ne s'exécute pas?
dois-je créer une fonction de connection ftp et la séparer du reste du script?
Marc_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 10h13   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 450
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 450
Points : 7 559
Points : 7 559
Et où se trouve la ligne qui termine le <<EOF ?
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 10h19   #3
Invité de passage
 
Inscription : décembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 12
Points : 2
Points : 2
Hum je ne comprend pas ta question..
je débute dans le shell.. pourquoi y a-t il besoin d'un autre EOF??
Marc_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 10h49   #4
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Tu peux l'écrire de cette manière :
Code :
1
2
3
4
5
6
7
8
9
 
#! /bin/sh
ftp -nv ftp.domain.com << END_SCRIPT
user xxx xxx
bin
pwd
quit
echo "script terminé"
END_SCRIPT
C'est plus parlant mais avec EOF ça passe aussi. EOF (End Of File)

++
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2007, 15h19   #5
Membre du Club
 
Inscription : novembre 2006
Messages : 80
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 80
Points : 50
Points : 50
En fait tout ce qui est entre les "EOF" n'est interpreté que par le shell du FTP. L'idée est de mettre ta portion de code FTP dans un script à part, et tu récupère les output et les error de ton transfert dans des fichier temporaire que tu crées :
Code :
1
2
3
4
5
6
7
8
 
ftp -n -v -i $ftp_server_ip <<EOF 1>>fout 2>>ferr
user $ftp_user $ftp_passwd
cd $remote_dir
lcd $local_dir
put $file_name
bye
EOF
dans ce petit script je récupère le résultat du prompt du script dans deux fichier "fout" et "ferr" et j analyse ses sorties pour connaitre l'etat de mon transfert.Mais ce code doit etre dans un script à part que tu pourra appeler autant de fois que tu veux à partir d'un autre script.
Si je t'ai pas tres bien répondu repose ta question avec plus d explication.

Bonne chance
oumokhtar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h20.


 
 
 
 
Partenaires

Hébergement Web