Tester la connexion FTP dans un script Bash

Bonjour,

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!!

Une idée?

Merci

Bonjour,

Est-ce que le mot de passe est demandé si tu remplaces ton script par

?

Et par

?

Et aussi

Merci branch. Que je comprenne. Tu veux que je remplace toute la ligne :

Par

?

Non.

Remplace tout ce script :

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 :

Merci a tous