Bonjour,
J'ai développé il y a quelques mois un script ftp générique pour AIX et SUN. Je porte aujourd'hui ce script sur linux redhat et je suis confronté à un comportement étrange lors de l'exécution d'une commande ftp en mode batch.
Voici un exemple de fichier de commande (cmd.txt):
Code:
1
2
3
4
5
6
7
8 user monuser monpassword ascii lcd monRépertoireLocal cd monRépertoireDistant verbose !echo "###FILE_LIST_START###" dir *.txt !echo "###FILE_LIST_END###"
Lorsque je lance la commande ftp -nvi host <cmd.txt, j'obtiens l'output suivant:
=> L'output suit correctement l'enchaînement des commandes du fichier cmd.txtConnected to host(ip). 220 host FTP server (Version 4.2) ready. Remote system type is UNIX. Using binary mode to transfer files. 331 Password required for ****. 230-Last login: Tue Jan 8 15:34:08 NFT 2013 on ftp from ****** 230 User **** logged in. 200 Type set to A; form set to N. Local directory now monRépertoireLocal 250 CWD command successful. Verbose mode off. ###FILE_LIST_START### -rw-r--r-- 1 ****** ****** 712580 Jan 08 06:10 file1.txt ###FILE_LIST_END###
Maintenant lorsque je lance la même commande mais en redirigeant l'output dans un fichier:
J'obtient (cat toto.txt) :Code:ftp -nvi host <cmd.txt 1>toto.txt 2>&1
Connected to host(ip). 220 host FTP server (Version 4.2) ready. Remote system type is UNIX. Using binary mode to transfer files. 331 Password required for ****. 230-Last login: Tue Jan 8 15:34:08 NFT 2013 on ftp from ****** 230 User **** logged in. 200 Type set to A; form set to N. Local directory now monRépertoireLocal 250 CWD command successful. ###FILE_LIST_START### ###FILE_LIST_END### Verbose mode off. -rw-r--r-- 1 ****** ****** 712580 Jan 08 06:10 file1.txt
L'output des commandes locales sont redirigés avant l'output des commandes distantes ?!
Après plusieurs heures de recherche je ne comprend pas ce comportement ni même un moyen de contourner ce problème sans modifier une grande partie de mon script qui doit rester générique (AIX|SUN|LINUX)
J'espère être suffisamment clair dans l'explication :)
Il est très simple de reproduire ce cas.
Toutes les idées ou suggestions sont les bienvenues ! :D
Merci d'avance !