![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
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? |
|
|||||
|
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. |
|
||||
|
Citation:
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. |
|
||||
|
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é. |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|