Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
transfert fichiers
Envoyé par: demo2000

1-comment faire un script shell qui permet le transfert des fichiers entre deux machines connectées dans un réseau
voila :

for file in (ls *)
do
monprocess file
transfere_file_vers_autre_machine
done

1- comment faire le transfere ver une autre machine ?
2- j'aimerais que le transfere se fait dès que le process termine de traiter le fichier ?
merci d'avance

Poste le Wednesday 22 June 2005 19:12:23
Répondre     Citer    
Re: transfert fichiers
Envoyé par: Sve@r

Ok - On va analyser ton script qui est prometteur mais... manquant encore de pratique

=> for file in (ls *)
Ca marche, mais le principe du "for" est de faire une boucle sur tous les mots placés => for var in mot1 mot2 mot3
De plus, le métacaractère "*", lorsque tu l'invoques, signifie "tout fichier dont le nom est inconnu"
Donc tu peux réduire en faisant
=> for file in *

Ensuite, pour le transfert, tu peux utiliser "rcp"
Cela te donnera
for file in *
do
____echo $file # Histoire de faire un affichage
____monprocess $file
____rcp "$file" machine_distante:repertoire_de_destination
done

Citation
demo2000
j'aimerais que le transfere se fait dès que le
process termine de traiter le fichier ?

Pour que le transferT se faSSE dès que le process ait terminé de traiter le fichier, il n'y a pas de pb. C'est le comportement par défaut.

Poste le Wednesday 22 June 2005 20:08:43
Répondre     Citer    
Re: transfert fichiers
Envoyé par: demo2000

merci,
Citation
Sve@r
Pour que le transferT se faSSE dès que le process ait terminé de traiter le fichier, il n'y a pas de pb. C'est le comportement par défaut

mon process c'est une fonction C, qui retourne un 0 en cas de succès.

est ce qu'il faut pas tester l'etat du process terminer/non avant le transfert ?
qu'est ce que vous pensez de :

for file in *
do
monprocess $file && rcp "$file" machine
done

merci



Poste le Thursday 23 June 2005 14:36:48
Répondre     Citer    
Re: transfert fichiers
Envoyé par: cancerus

Bonjour,

Je ne saurais pas te dire si le && fonctionne.
Toutefois, si tu veux tester le code retour de ton premier process, il te suffit de faire:
monprocess $file
if [ $? = 0]
then
rcp...
else
<gestion d'erreur>
fi

A plus.

Poste le Thursday 23 June 2005 18:10:08
Répondre     Citer    
Re: transfert fichiers
Envoyé par: Sve@r

Citation
demo2000
merci,
Sve@r a écrit :
Pour que le transferT se faSSE dès que le process
ait terminé de traiter le fichier, il n'y a pas de
pb. C'est le comportement par défaut

mon process c'est une fonction C, qui retourne un
0 en cas de succès.

est ce qu'il faut pas tester l'etat du process
terminer/non avant le transfert ?
qu'est ce que vous pensez de :

for file in *
do
monprocess $file && rcp "$file" machine
done

merci

Pour conditionner l'exécution d'un programme "p2" sur la réussite d'un programme "p1" (p1 renvoyant "0" en cas de réussite), tu as 3 possibilités
1)
p1 && p2

2)
if p1
then
____p2
fi

3)
p1
if test $? -eq 0
then
____p2
fi

Donc ta syntaxe "monprocess $file && rcp "$file" machine" est correcte pour synchroniser le rcp sur la réussite de "monprocess"
Le seul soucis est que la destination de "rcp" s'écrit "machine:repertoire". Dans ta syntaxe, il te manque les ":"
=> monprocess $file && rcp "$file" machine:.

Poste le Thursday 23 June 2005 20:25:20
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
transfert fichiers
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

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