Telecharger un fichier via sftp

chabichabs -  
 davlar -
Bonjour,

j'ai deja laissé plusieurs post pour en arrivé là .. je reprend depuis le ebut mon souci ...
je dois réaliser un script avec sftp.
Je dois telechargé un fichier mais je connait que le debut de ce fichier et la fin.
Par exemple si je dois telecharge le fichier :
fichier_test87148656164.tgz

je connait fichier_test et tgz et pas le reste.

j'ai fait l'expression regulière pour trouvé le bon fichier:
^fichier_test.*.tgz$

Je l'ai essayé avec un ls | grep ^fichier_test.*.tgz$ et il me trouve bien le fichier
fichier_test87148656164.tgz

Alors voila la commande de mon script qui fait tout (connexino plus recuperation du fichier) :

lftpget sftp://login:mot_de_pass@IP_machine_distante/home/rep1/fichier_test87148656164.tgz

Quand le lance ce script ca marche sans aucun problème mais comme je vous l'ai dit je connait pas entierement le nom du fichier donc j'intègre mon expression regulière dans ma commande lftpget :

lftpget sftp://login:mot_de_pass@IP_machine_distante/home/rep1/^fichier_test.*.tgz$

Et là c'est le drame. Il cherche un fichier intitulé "^fichier_test.*.tgz$" qui bien sur n'existe pas. Il arrive pa a reconnaitre mon expression regulière, il prend ca pour un nom de fichier quelcquonque

Merci de votre aide..
A voir également:

2 réponses

rescue Messages postés 1047 Statut Contributeur 136
 
Bonour,

La syntaxe générale pour l'utiliser est : sftp nom-d'utilisateur@nom-d'hôte.com. Une fois authentifié, vous pouvez utiliser un ensemble de commandes semblable à celui offert par FTP.
Consultez la page de manuel sftp pour obtenir la liste de ces commandes en entrant man sftp à l'invite du shell.
L'utilitaire sftp n'est disponible que dans les versions 2.5.0p1 ou supérieures d'OpenSSH.

Source : http://www.linux-kheops.com/doc/redhat71/rhl-cg-fr-7.1/openssh-clients.html

@
1
davlar
 
Bonjour,

Je te suggérait d'utiliser perl Avec la librairie Net::SFTP et IPC::Open2 afin de réaliser ton script.

Bien entendu ça dépend de ton niveau de connaissance en la matière.

A+

Dave
0