The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
pause () problèmes IdleProc UNIX pour les nuls Questions et réponses 1 03-17-2009 06:21 PM
Pause pour la réponse de la part du fichier de log gxdanh De programmation et de script Shell 3 10-24-2008 12:52 PM
Rsync script cron de marcher sur lui-même sunsysadm2003 De programmation et de script Shell 3 04-30-2008 12:14 PM
pause? où es-tu? 01000101 High Level Programming 3 05-15-2006 08:42 PM
comment faire une pause d'un autre processus? daneensign UNIX pour les nuls Questions et réponses 1 02-14-2006 12:27 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 05-26-2009
droppedonjapan droppedonjapan is offline
Registered User
  
 

Join Date: Mai 2008
Messages: 8
Script Pause Jusqu'à Rsync Est Fait Transfert

Bon, j'ai ce script qui extrait les fichiers à partir de quelques endroits, le processus de ces fichiers, crée un fichier zip, rsync, elle supprime tout et ensuite.

Le problème que je vais avoir, c'est que je ne sais pas comment le grand fichier zip rsync'ed va être. En ce moment je suis sur un sommeil de commande avant de supprimer tous les fichiers et répertoires créés, mais je suis mal à l'aise dans la laisser comme ça. Tout cela serait prendre un gros fichier dont il a besoin pour rsync et le script de supprimer le fichier avant qu'il ne soit fait d'être transféré.

Alors, est-il un moyen d'avoir le script de vérifier l'état d'avancement de rsync? Si non, comment pourrais-je aller de faire quelque chose dans ce sens?
  #2 (permalink)  
Old 05-26-2009
in2nix4life's Avatar
in2nix4life in2nix4life is offline
Registered User
  
 

Join Date: Oct 2007
Lieu: East Coast
Posts: 58
S'il s'agit d'un script shell Bash, vous pouvez essayer le «attendre» la commande.

Voir plus ici -- Job Control Commandes

Hope this helps.
  #3 (permalink)  
Old 05-26-2009
jaysunn's Avatar
jaysunn jaysunn is offline
Registered User
  
 

Join Date: Mai 2009
Posts: 22
Je préfère utiliser un fichier de verrouillage. De cette façon, le script sera exécuté au fichier verrou est allé de nouveau exécuter:
Code:
#
# create name for lock file
#
lockDir="/root/lock_files"
lockFilePath="$lockDir/file.lock"
#
#
#
# Loop through servers until file is no longer exists
#  
while [ -e "$lockFilePath" ]
do

   exit
done
#
#
#
# create new lock file
#
touch $lockFilePath
#
#
#
# loop through servers and sync docroots and code
#
/usr/bin/rsync  --stats -e ssh -rlvtgoDz --delete  /dir/dir/dir/ root@server:/dir/dir/dir/ &
#
#
#
# Remove lock file........
#
rm -f $lockFilePath


Assurez-vous de mettre en place les clés ssh. Ceci est exécuté sur un système Red Hat.

Bonne chance
  #4 (permalink)  
Old 05-28-2009
droppedonjapan droppedonjapan is offline
Registered User
  
 

Join Date: Mai 2008
Messages: 8
Citation:
Posté par in2nix4life View Post
S'il s'agit d'un script shell Bash, vous pouvez essayer le «attendre» la commande.
Pour une raison d'attendre la commande ne fonctionne pas selon la documentation que vous m'avez donné. J'ai essayé de faire juste ...


Code:
rsync -urza -e "ssh -i rsync-key -l username -p xxxx" /filepath/filename.zip webserv:/filepath/

wait

Et il n'attend pas du tout.

Comme pour le fichier de verrouillage, je ne suis pas sûr que ce script, exactement.


Code:
lockDir="/root/lock_files"
lockFilePath="$lockDir/file.lock"

while [ -e "$lockFilePath" ]
do

   exit
done

touch $lockFilePath

/usr/bin/rsync  --stats -e ssh -rlvtgoDz --delete  /dir/dir/dir/ root@server:/dir/dir/dir/ &

rm -f $lockFilePath

Pour autant que je peux dire, il commence à dire lorsque la serrure est répertoire et de fichier. Ensuite, vous dire si le fichier verrouillé existe, alors si c'est le cas, puis la sortie du script. Ensuite, si elle n'y est pas, alors vous touchez le fichier (en créant un fichier vide, si ma "touch" est correcte), puis démarre le rsync dans un processus d'arrière-plan. Après il commence à faire du rsync, puis il supprime le fichier verrou.

J'ai pu voir un peu ce travail si vous avez fait le script s'appelle lui-même avant tout de la déclaration, mais je ne sais pas comment ce serait d'améliorer ma situation. Normalement mon script puis supprime les fichiers qui sont rsync'ed, même si j'ai appelé ce script externe, la commande rm ouvrez dès que le script terminé, a la même que le rsync commence. Et je n'ai pas besoin de plusieurs fichiers rsync, un seul.

D'autres idées / suggestions?

(Merci pour ce que j'ai à ce jour, par le chemin. )

EDIT: Aussi, je gère tout cela sur un système Red Hat. J'ai oublié d'inclure ce plus tôt.
  #5 (permalink)  
Old 06-01-2009
df d.f. is offline
Registered User
  
 

Join Date: Nov 2006
Messages: 5
Si je comprends bien, vous êtes à la recherche d'un moyen de faire en sorte que le rsync se termine avec succès avant de passer au reste de votre script. bash vous permettra de le faire avec le '& &' opérateur (dans ce cas, rsync est command1):


Code:
command1 && command2

De la page de manuel de bash, "command2 est exécuté, si et seulement si, commande1 retourne un état de sortie de zéro».

Donc, quelque chose que vous pourriez être en mesure d'utiliser serait la suivante:


Code:
rsync -options file.xx remotehost:/path/to/store && rm file.xx

Le gotcha ici, c'est que rsync peut échouer pour deux raisons différentes et si c'est le cas, la deuxième commande ne serait pas exécuté.
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 12:29 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0