# Tester la connexion FTP dans un script Bash

**URL:** <https://www.debian-fr.org/t/tester-la-connexion-ftp-dans-un-script-bash/32059>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 1:54 UTC](https://www.debian-fr.org/t/tester-la-connexion-ftp-dans-un-script-bash/32059 "2016-02-21T01:54:35Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![pcsystemd](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pcsystemd/32/5182_2.png) [@pcsystemd](https://www.debian-fr.org/u/pcsystemd)\
**Post date:** [Février 21, 2016, 1:54 UTC](https://www.debian-fr.org/t/tester-la-connexion-ftp-dans-un-script-bash/32059/1 "2016-02-21T01:54:35Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![branch](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/ee7513/32.png) [@branch](https://www.debian-fr.org/u/branch)\
**Post date:** [Février 21, 2016, 1:54 UTC](https://www.debian-fr.org/t/tester-la-connexion-ftp-dans-un-script-bash/32059/2 "2016-02-21T01:54:38Z")

</div>

Bonjour,

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

```auto

```

?

Et par

```auto

```

?

Et aussi

```auto

```

---

<div class="post-metadata">

**Author:** ![pcsystemd](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pcsystemd/32/5182_2.png) [@pcsystemd](https://www.debian-fr.org/u/pcsystemd)\
**Post date:** [Février 21, 2016, 2:02 UTC](https://www.debian-fr.org/t/tester-la-connexion-ftp-dans-un-script-bash/32059/3 "2016-02-21T02:02:04Z")

</div>

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

```auto

```

Par

```auto

```

?

---

<div class="post-metadata">

**Author:** ![branch](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/ee7513/32.png) [@branch](https://www.debian-fr.org/u/branch)\
**Post date:** [Février 21, 2016, 2:02 UTC](https://www.debian-fr.org/t/tester-la-connexion-ftp-dans-un-script-bash/32059/4 "2016-02-21T02:02:05Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![pcsystemd](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pcsystemd/32/5182_2.png) [@pcsystemd](https://www.debian-fr.org/u/pcsystemd)\
**Post date:** [Février 21, 2016, 2:02 UTC](https://www.debian-fr.org/t/tester-la-connexion-ftp-dans-un-script-bash/32059/5 "2016-02-21T02:02:07Z")

</div>

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 :

```auto

```

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 :

```auto

```

Merci a tous
