dans un script Bash je souhaite tester la connexion au FTP. Voici le code concerné :
if [ $(ftp ${FTRVER} < test.ftp 2>&1 | grep -c 'unknown|refused') -eq 1 ]
then
echo 'Problème de connexion' | mail -s "Problème de connexion" mail@mail.com
exit 1
else
ftp -n ${FTRVER} << EOF
quote USER ${FUER}
quote PASS ${FPSS}
cd ${FATH}
bin
get fichier fichier
quit
EOF
fi
Mon souci c’est que j’ai une demande de mot de passe alors que cela ne devrait pas être le cas puisque je renvoi a la commande ftp mon fichier test.ftp qui contient un “quit” .
Ce qui est curieux, c’est que cette demande de mot de passe ne correspond a rien puisqu’il suffit que j’appuie sur la touche “Entrée” et le script continue normalement!!
if [ $(ftp ${FTRVER} < test.ftp 2>&1 | grep -c 'unknown|refused') -eq 1 ]
then
echo 'Problème de connexion' | mail -s "Problème de connexion" mail@mail.com
exit 1
else
ftp -n ${FTRVER} << EOF
quote USER ${FUER}
quote PASS ${FPSS}
cd ${FATH}
bin
get fichier fichier
quit
EOF
fi
par chacune des trois lignes que je t’ai indiquées, successivement, et regarde à chaque fois si un mot de passe t’es demandé.
En général quand on a un problème dans un script, il faut éliminer le plus de choses possibles, tout en gardant le problème. Une fois que le problème est isolé du reste du code, on peut plus facilement le régler.
J’ai testé tes options mais j’avais toujours le même problème de demande de mot de passe mais en vérifiant de nouveau mon script je me suis aperçu que dans la ligne de code :
j’avais oublié le paramètre -n de la commande FTP et maintenant c’est ok je n’ai plus de demande de mot de passe donc tout fonctionne avec la ligne de commande suivante :