Page 3 sur 3
Re: [..] Récupération de fichier par SFTP
Posté : ven. 08 avr. 2011 15:43
par koa0
Désolé. Bon alors je vais me creuser les méninges car je ne l'ai pas compris le script.
Je regarde de plus près
Re: [..] Récupération de fichier par SFTP
Posté : ven. 08 avr. 2011 15:53
par koa0
Si ça te derange pas je vais tester ton prog lundi car je vais entrer en reunion.
Merci beaucoup pour ton aide et bonne soirée.
Je te tiens au courant
Merci encore
Re: [..] Récupération de fichier par SFTP
Posté : ven. 08 avr. 2011 15:56
par sylvanie
En attendant, voici le même mais ultra commenté :
► Afficher le texte
Code : Tout sélectionner
$file=@ScriptDir&"\liste_a_chercher"; nom du fichier dans lequel on aura la liste des fichiers à chercher
$serveur="xxxxxx" ; adresse du serveur
$user=InputBox("User","User") ; user
$passwd=InputBox("Passwd","Password de "&$user,"","*") ; password
If $user="" Or $passwd= "" Then Exit 1 ; si l'un des 2 champs est vide on sort
RunWait(@ComSpec&" /c plink.exe -pw "&$passwd&" "&$user&"@"&$serveur&" < find_files.txt",@ScriptDir,@SW_HIDE); On envoie par ssh (plink) les commandes contenues dans find_files.txt;
;;ces commandes sont :
;find /chemin_à_fouiller -name "toto\.txt" > /tmp/liste_a_chercher ; Ceci cherche récursivement les fichiers toto.txt dans le rep /chemin_à_fouiller et écrit le résultat dans /tmp/liste_a_chercher
;logout ;; on se déconnect de la session SSH
RunWait(@ComSpec&" /c pscp.exe -pw "&$passwd&" "&$user&"@"&$serveur&":/tmp/liste_a_chercher"&" ./",@ScriptDir,@SW_HIDE);on récupère le fichier /tmp/liste_a_chercher du serveur ssh pour le stocker ici même à la racine du script
$hnd=FileOpen($file,0); on va lire ce fichier
If $hnd=-1 Then Exit 2; si échec d'ouverture on sort
$rep_out=@ScriptDir&"\SCP_"&@YEAR&"_"&@MON&"_"&@MDAY&"_"&@HOUR&"_"&@MIN&"_"&@SEC; construction du nom du rep où on va recopier
ConsoleWrite(DirCreate($rep_out)&@CRLF);création du rep (leconsolewrite c'est du debug)
$rep_out='"'&$rep_out&'"';on double quote le nom du répertoire, car les espaces sont des ennemis jurés !
$error=""; variable qui servira à stocker les erreurs de copie, si il y en a
While 1
$remote=FileReadLine($hnd); on lit ligne par ligne
If @error=-1 Then ExitLoop; sortie de boucle si fin de fichier
TrayTip("SCP",$remote,2)
if(RunWait(@ComSpec&" /c pscp.exe -pw "&$passwd&" "&$user&"@"&$serveur&":"&$remote&" "&$rep_out,@ScriptDir,@SW_HIDE)&@CRLF)<>0 Then ; la commande scp lancée sur le fichier courrant à récupérer
$error&=$remote&@CRLF;là on est dans un cas d'eerreur on reseigne $error
EndIf
WEnd
FileClose($hnd); on referme le fichier
If $error<> "" Then
MsgBox(16,"Erreur","Probleme de copie sur :"&@CRLF&$error)
Else
MsgBox(0,"Fin","Tout est OK")
EndIf
Et j'insiste une fois de plus sur la présence également du fichier des commandes à envoyer au serveur (find_files.txt) :
Code : Tout sélectionner
find /chemin_de_recherche -name "toto\.txt" 2>/dev/null > /tmp/liste_a_chercher
logout
Re: [..] Récupération de fichier par SFTP
Posté : mer. 13 avr. 2011 09:35
par koa0
Bonjour,
Désolé je n'ai pas pu revenir avant. Je te remercie pour ton aide. Je vais tester ton exemple aujourd'hui. Je te tiens au courant
Re: [..] Récupération de fichier par SFTP
Posté : mer. 13 avr. 2011 11:10
par koa0
Je viens de tester et c'est presque cela que je veux. Actuellement le script va voir un répertoire:
Si le fichier y est il l'envoi à windows
sinon il sort en erreur
J'aimerais qu'il tourne comme une sorte de thread en scrutant le répertoire /appele/bd/toto/ tant que le fichier tata.txt n'y est pas déposé. Une fois déposé il l'envoie à windows.
Merci
Re: [..] Récupération de fichier par SFTP
Posté : mer. 13 avr. 2011 13:55
par sylvanie
Bonjour,
je ne pourrai pas passer du temps aujourd'hui (ou pas beaucoup). Cependant il vous suffit d'utiliser le planificateur de tâche de Windows pour le lancer à intervalle régulier.
Si le fichier rechercher n'est pas là, le fichier "liste_a_chercher" sera vide il cela ,ne downloadera rien.
bonne continuation
Re: [R] Récupération de fichier par SFTP
Posté : mer. 13 avr. 2011 14:33
par koa0
Merci beaucoup. C'est ok pour moi.
Je passe le pb en resolu.
Bonne journée
Re: [..] Récupération de fichier par SFTP
Posté : mer. 13 avr. 2011 23:02
par Tlem
Sujet résolut = [R] dans le titre de votre premier message.