Rechercher : dans
Par :

[Expect] ftp, parametres et code retour

Dernière réponse le 14 nov 2007 à 13:34:52 jukilo, le 14 nov 2007 à 11:51:59 
 Signaler ce message aux modérateurs

Salut,

alors j'explique mon problème:
je veux faire une commande ftp automatique, que je fais avec expect. Jusque là, out va bien. Sauf que je voudrais:

1) passer le nom du serveur, login, pass, fichier... en parametre à mon script expect pour le rendre générique en fonction des données d'un formulaire php

2)retourner les codes d'erreur du ftp dans un fichier log pour le traiter ensuite et l'afficher dans le formulaire.

je marche de cette manière:

avec le formulaire php je génère un fichier paramftp.sh dans lequel il y a:

./templateftp.exp serveur login pass rep_distant rep_local fichier_a_envoyer

ensuite je traite le code retour
(il est lancé avec un cron)

dans templateftp.exp, il y a:
#!/usr/bin/expect -f

set timeout 3
set force_conservative 1;

spawn ftp $1

# On attend la reponse "220" (OK)
expect {
  timeout { puts "connexion impossible"; exit 1 }
  connected { puts "connexion réussie"}
  "220*\n"
}
#on envoit le login/mdp
expect ": $"
send "$2\n"
expect "Password:$"
send "$3\n"
expect {
	failed { puts "Identification impossible"; exit 2 }
	timeout { puts "Identification impossible"; exit 2 }
	"230*\n"
}

expect "ftp> $"
#on se place dans le repertoire distant
send "cd $4\n"
expect  {
	timeout { puts "répertoire non valide"; exit 3 }
	"250*\n"
}

expect "ftp> $"
#on se place dans le repertoire local
send "lcd $5\n"
expect "ftp> $"
set timeout 1800
#on donne le fichier à envoyer/recevoir
send "put $6\n"
expect {
	timeout { puts "Le fichier n'a pas été envoyé"; exit 4 }
	"226*\n"
}
set timeout 4
send "quit\n"
# On attend la coupure de connexion.
expect {
  timeout { puts "erreur a la deconnexion"; exit 5 }
  "221*\n"
}


Je ne cache pas que je n'arrive pas à passer de parametres à expect, ça ne marche pas mais je l'ai mis pour l'exemple
Et ensuite, je voudrais récupérer les codes retour du ftp, ou ne serait-ce que le message envoyé quand, par exemple, on n'arrive pas à se connecter. La solution que j'utilise (le timeout) ne me semble pas d'une fiabilité extraordinaire)

Merci d'avance

PS: je sais pas si je suis clair
PS2: le script exp tel quel fonctionne avec des vraies données
Configuration: Windows XP
Firefox 2.0.0.9

Meilleures réponses pour « [Expect] ftp, parametres et code retour » dans :
Comment récupérer le résultat d'une commande dans une variable VoirComment récupérer le résultat d'une commande dans une variable Préambule Syntaxe Exemples Préambule Il est bien souvent nécessaire de récupérer le résultat d'une commande (ou de son code retour) dans une variable afin de pouvoir...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
Le remplacement de variables en shell Bash VoirLe remplacement de variables Introduction Il peut s'avérer utile de s'assurer qu'une variable est bien définie avant de procéder à son remplacement, ou tout simplement de s'assurer que celle-ci n'est pas vide, et dans ce cas de l'initialiser avec...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
Les fonctions de l'API Socket VoirLes fonctions des sockets en détail La fonction socket() La création d'un socket se fait grâce à la fonction socket() : int socket(famille,type,protocole) famille représente la famille de protocole utilisé (AF_INET pour TCP/IP utilisant une...
Code ASCII VoirLe codage des informations Le morse a été le premier codage à permettre une communication longue distance. C'est Samuel F.B.Morse qui l'a mis au point en 1844. Ce code est composé de points et de tirets (un codage binaire en quelque sorte...). Il...
Le protocole FTP (File Transfer Protocol) VoirIntroduction au protocole FTP Le protocole FTP (File Transfer Protocol) est, comme son nom l'indique, un protocole de transfert de fichier. La mise en place du protocole FTP date de 1971, date à laquelle un mécanisme de transfert de...

1

jipicy, le 14 nov 2007 à 12:06:24

Salut,

Tiens pour les paramètres à passer à ton script "expect", jettes un œil à ce topic ;-))

Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

 jukilo, le 14 nov 2007 à 13:34:52

Ah cool c'est parfait!
quelqu'un aurait une idée pour renvoyer le code et le message d'erreur du ftp?

Répondre à jukilo