Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Script shell pour lister des fichiers
Envoyé par: Séboun

Salut à tous,

Je viens a vous pour me donner une idée sur un petit problème que voici :

il faut que j'écrive un script qui puisse me lister les fichiers et sous répertoire pour obtenir en sorti un fichiers script pour client ftp.

exemple de fichier de sortie:
open xxx.xxx.xxx.xxx
user
pwd

cd monrep
lcd monrep
get fichier1
get fichier2
get fichier3
cd ../monrep2
lcd ../monrep2
get fichier1
get fichier2

j'espère avoir été claire

Merci

Séboun

Poste le Sunday 19 February 2006 01:06:49
Répondre     Citer    
Re: Script shell pour lister des fichiers
Envoyé par: ryko

Salut,

T'inquiète pas ce que tu veux faire se fait depuis que les réseaux existent donc forcemment c'est clair. Tu peux regarder du coté de ncftp[get,put], de wget ou de cUrl
(tout les programmes que je te cite sont en ligne de commandes)
Sinon ça dépend du programme ftp que tu utilise il y a le plus souvent un mode non interactif qui permet de lui passer un script en argument.

man ncftpget ou ncftpput
man wget
man curl
man ftp

Poste le Sunday 19 February 2006 05:25:30
Répondre     Citer    
Re: Script shell pour lister des fichiers
Envoyé par: tg(y)

La commande get de l'outil ftp permet une copie récursive, on accède à l'aide avec help ou help get.

Poste le Sunday 19 February 2006 09:22:03
Répondre     Citer    
Re: Script shell pour lister des fichiers
Envoyé par: Séboun

merci pour avoir pris quelques instant pour me répondre. Ces solutions ne me conviennent pas trop en voici les raisons :
- tous les fichiers d'un repertoires ne sont pas concerné par le transfer (unique les fichiers source et le ou les fichiers make sont a transferer)
- le script ftp sera executer depuis winxp et je croix que cette commande n'est pas récursives pour xp

voici en gros la structure type d'un repertoire
MonRep
|
|-Makefile
|-fichier .o
|-src
| |- fichier c ou cpp
|
|-inc
| |- fichier h

MonRep est inclus dans un repertoire et MonRep est repeté n fois.

Poste le Sunday 19 February 2006 12:53:58
Répondre     Citer    
Re: Script shell pour lister des fichiers

On peut utiliser un language de script autre que le shell. Par exemple Ruby ou Perl (que je ne connais pas).

Par ailleurs, pourquoi ne pas utiliser un versionneur de fichier, comme SubVersion: on peut installer un serveur SVN sur Linux et utiliser un client Svn sous Windows.

J'avais codé des scripts Ruby sans problème pour ce genre de choses.

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Sunday 19 February 2006 15:06:58
Répondre     Citer    
Re: Script shell pour lister des fichiers
Envoyé par: ryko

(re)Salut,

ncftp ( [www.ncftp.com] ) qui fournit les commandes ncftpget ou ncftpput est recursif et porté sous win32 ainsi que cUrl ( [curl.haxx.se] ).

cUrl -L user:passwd@192.168.10.20/pub/userDir/ > tmplst.txt

pour obtenir une liste de fichiers par exemple.

pour ncftp en mode interractif ca serait :

cd /pub/userDir/
ncftp -R *
pour récupérer toute une arborescence

en utilisant ncftp[get,put] (les outils non-interractifs de ncftp) doit certainememt y a voir une solution. ncftpget -R est récursif (pas testé jusqu'à quel point)

même le ftp en ligne de commande standard de WINXP peut aussi utiliser un script en argument contenant les commandes si tu connais ton arborescence (car il n'est effectivement pas récursif).

pour avoir la syntaxe : "ftp --help" dans une fenêtre de commande.
Ca donnera peut donner quelque chose comme :

ex. : ftp -s:unscript (peut être qu'il faut ajouter -i)

unscript : pouvant contenir les commandes (la syntaxe je suis plus sûr mais c'est comme si c'etait de l'interractif sauf qu'il pioche dans le fichier que tu lui donne en argument, fichier pouvant être construit dynamiquement a l'aide des outils adhoc, cf. plus haut) :

open monFtp.com
user toto passXXXX
cd /pub/userDir/
ls *.c tempLst.txt
bye

Avec ncftpget (en mode -R) je crois que ça suffit mais en utilisant une combinaison des trois, sûr que tu fais tout ce que tu veux.
Y compris la construction dynamique du script a fournir a ftp a partir de tempLst.txt. (for /F %%I in ('find .c tmplist.txt') do ncftpget %%I, par ex.)

Le contre toutes ces methodes c'est que quel quelles soient les mot de passes sont en clair contrairement a du sftp dans lequel tu pourrais utiliser pratiquement les mêmes fontionnalités sans avoir a stocker sur un disque (par échange de clefs) ou a faire transiter sur le réseau un mot de passe que le premier script kiddies bien placé peut sniffer.

Après tout est question d'impératif de sécurité.

Enfin si c'est pour une utilisation professionnelle dans le cadre de développements pourquoi ne pas aller encore plus loin et se diriger vers du client/serveur CVS ou SVN (que je ne connais pas) comme disait Basile.

Les solutions sont nombreuses a toi de voir ou tu es le plus a l'aise, ce que tu peux installer sur les postes, en bref quels sont les objectifs et les contraintes. ^^D-*

pas le temps de me relire trop, jdois y aller, sorry

Poste le Sunday 19 February 2006 16:45:52
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Script shell pour lister des fichiers
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons