Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Système

Système Vos questions autour de l'administration système

Réponse
 
Outils de la discussion
Vieux 05/09/2008, 20h22   #1 (permalink)
Membre éprouvé
 
Avatar de Blo0d4x3
 
Date d'inscription: octobre 2003
Messages: 450
Envoyer un message via AIM à Blo0d4x3 Envoyer un message via MSN à Blo0d4x3
Par défaut Connection ftp scriptée

Bonjour,

Je chercher à faire un script pour automatiser une connection ftp, je fais comme ceci:

Code :
FTP_CMD="/usr/bin/ftp"

    printf "user: $user pass: $passi, IP $IP\n"

    echo "machine ${IP}" > ~/.netrc
    echo "login ${user}" >> ~/.netrc
    echo "password ${pass}" >> ~/.netrc

  $FTP_CMD ${IP} <<**
    ls
    bye
**

   printf "retour= $?\n"
Seulement, je ne récupère pas le code erreur comme je voudrais, quand ca marche ca renvois 0, mais si la connection plante ca renvoit n'importe quoi.
Déja, est possible de tester si la connection a marché avant de passer une commande ftp?

Merci.
Blo0d4x3 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/09/2008, 21h17   #2 (permalink)
Membre Expert
 
Avatar de frp31
 
Date d'inscription: juillet 2006
Localisation: toulouse
Messages: 1 474
Par défaut

il faut logguer le ftp dans un fichier (variable ou socket)
et analyse le contenu

ftp ............<< EOT
....
....
....
....
....
EOT | tee /tmp/ftp.log

après tu tests ligne à ligne (pour celles qui commance par un nombre le numero
200 = commande valide
330 = demande de password
250 = changement de repertoire ok
220
etc...
etc...

par exemple pour analyser un listage de fichier
il faut avoir eut les 3 retours suivants 200 150 226 à la suite et dans cet ordre

idem pour un get ou un put (de mémoire)

bref il faut faire ça en deux étapes...bien sur une fois l'analyse faite le fichier temporaire peut etre effacé



===========================


duxièmement tu commets une erreur dans ton script
tu recrées le .netrc avec les passwords et login en clair

le .netrc existe justement pour ne pas pouvoir voir le password ni le login dans le script
__________________
Bye @+
(\__/)
(o..o)
(") (")

Soutenez le logiciel libre
frp31 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/09/2008, 21h29   #3 (permalink)
Membre éprouvé
 
Avatar de Blo0d4x3
 
Date d'inscription: octobre 2003
Messages: 450
Envoyer un message via AIM à Blo0d4x3 Envoyer un message via MSN à Blo0d4x3
Par défaut

J'ai essayer de faire un redirection par un pipe comme tu dis ca ne marche pas :-(.

Code :
  $FTP_CMD ${IP} <<EOT
  bye
EOT | tee /tmp/ftp.log

   printf "retour= $?\n"

  done
J'ai ces messages d'erreur:

Code :
./ftp_connect.sh -i 192.168.1.13
./ftp_connect.sh: line 97: syntax error: unexpected end of file
Le EOT aime pas qu'on rajoute une redirection derriere apparament :-\.
Blo0d4x3 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 10/09/2008, 15h15   #4 (permalink)
Membre éclairé
 
Avatar de Tchetch
 
Date d'inscription: mars 2002
Localisation: Martigny, VS, CH
Âge: 23
Messages: 329
Par défaut

Salut,

Code bash :
#!/bin/bash
(
        echo "open XXXXX.com"
        echo "passive"
        echo "cd /web"
        echo "close"
) | ftp -v 2>&1 > myFTPLogFile.log

Et comme ça tu peux récupérer la sortie et le code de retour.

T.
__________________
Mon wiki (on y parle Debian principalement) : http://www.tchetch.net/
Tchetch est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 10/09/2008, 15h46   #5 (permalink)
Membre Expert
 
Avatar de frp31
 
Date d'inscription: juillet 2006
Localisation: toulouse
Messages: 1 474
Par défaut

Citation:
Envoyé par Blo0d4x3 Voir le message
J'ai essayer de faire un redirection par un pipe comme tu dis ca ne marche pas :-(.

Code :
  $FTP_CMD ${IP} <<EOT
  bye
EOT | tee /tmp/ftp.log

   printf "retour= $?\n"

  done
J'ai ces messages d'erreur:

Code :
./ftp_connect.sh -i 192.168.1.13
./ftp_connect.sh: line 97: syntax error: unexpected end of file
Le EOT aime pas qu'on rajoute une redirection derriere apparament :-\.

j'ai oublié les ()

Citation:
(
ftp.....
EOT
) | ............
mais un man ksh ou bash te l'aurait dit je pense
__________________
Bye @+
(\__/)
(o..o)
(") (")

Soutenez le logiciel libre
frp31 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 10/09/2008, 16h10   #6 (permalink)
Membre chevronné
 
Date d'inscription: juin 2008
Messages: 643
Par défaut

Au cas ou vous ne connaitriez pas CKermit, jetez un oeil à:
http://www.columbia.edu/kermit/ftpscripts.html
Il implémente un client FTP (ou SFTP) scriptable qui répond à pas mal de soucis délicats à résoudre depuis à partir d'un script shell.
- W
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Système



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide