J'ai un script shell qui envoit un fichier par ftp,
j'aimerais récupérer l'exit status pour relancer le transfert
si tout ne s'est pas bien déroulé.
voici mon code :
Code :
- ftp -n 192.168.0.8 <<END_SCRIPT
- quote USER user
- quote PASS pass
- bin
- put essaiShell.sh
- quit
- END_SCRIPT
- EXITSTATUS=$?
- if [ $EXITSTATUS == "0" ]
- then
- echo "OK"
- else
- echo "NOK"
- fi
|
Normalement, je dois afficher OK si tout se passe bien,
NOK dans les autres cas.
Le problème c'est qu'il affiche OK dans tous les cas.
Voici un exemple :
Quand tout se passe bien :
Code :
- thor:/cron # ./essaiShell.sh
- Connected to 192.168.50.108.
- 220 ProFTPD 1.2.7 Server (CET FTP) [intranet]
- 331 Password required for cet.
- 230 User cet logged in.
- 200 Type set to I.
- local: essaiShell.sh remote: essaiShell.sh
- 500 EPSV not understood.
- 227 Entering Passive Mode (192,168,50,108,149,107).
- 150 Opening BINARY mode data connection for essaiShell.sh
- 100% |*****************************************************************************************| 1009 6.08 MB/s 00:00 ETA
- 226 Transfer complete.
- 1009 bytes sent in 00:00 (253.23 KB/s)
- 221 Goodbye.
- OK
|
et quand ça ne va pas :
Code :
- thor:/cron # ./essaiShell.sh
- Connected to 192.168.50.108.
- 220 ProFTPD 1.2.7 Server (CET FTP) [intranet]
- 331 Password required for cet.
- 230 User cet logged in.
- 200 Type set to I.
- local: essaiShiell.sh remote: essaiShiell.sh
- ftp: local: essaiShiell.sh: No such file or directory
- 221 Goodbye.
- OK
|
Le fichier que je veux transférer n'existe pas,
et pourtant le code de sortie de ftp est le même.
Comment puis-je détecter une erreur ?
Message édité par warp le 01-10-2003 à 17:01:48
---------------
Il n'est pas nécéssaire de réussir pour persévérer.