IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

[rsync]need help pls


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Points : 8
    Points
    8
    Par défaut [rsync]need help pls
    Bonjour,

    J'ai ' on a ' fait ce script qui parcours un certains nombre de repertoire et execute certaine option de rsync pour la synchronisation des dossiers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
    #! /usr/bin/ksh
    set -x 
     
    DIRS=" awk bcp bin etc conf env hlp isis MTM  purge shell sparse/bin sparse/etc sparse/exe sparse/lib sparse/javalib sparse/conf sqr sql tabl VAR FIXEDINCOME wbi wbi43 "
     
    test "CLdi" != $(basename $(pwd)) && echo "Doit etre lance dans un répertoire appelé CLdi : $(viewtop)/CLdi ?" && return 4
    TO=/applis/list/summit/CLdi/v52cln032.0
    FROM=.
     
    RSYNC_OPTS=${RSYNC_OPTS:=-crlv} # av
    test "$1" != "doit" && RSYNC_OPTS="${RSYNC_OPTS}ni"
    RSYNC_OPTIONS="$RSYNC_OPTS "
     
    RSYNC=/Soft/gnutools/bin/rsync 
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/Soft/gnutools/lib
     
    for dir in $DIRS; do
        SUBDIR=`dirname $dir`
        test ! -d $TO/$SUBDIR && echo "Creating missing dir  $TO/$SUBDIR" &&  mkdir $TO/$SUBDIR 
        CMD="$RSYNC $RSYNC_OPTS  --exclude '.nfs*' --delete --exclude 'findmerge.log*' --exclude '*.contrib' --exclude '*~' --exclude '*.contrib.*' --exclude '*.keep'  $FROM/$dir $TO/$SUBDIR"
        echo $CMD
        test "$1" != show && eval $CMD
    done
     
    FROM=../COMMON
    CMD="$RSYNC $RSYNC_OPTS  --delete --exclude 'findmerge.log*' --exclude '*.contrib' --exclude '*~' --exclude '*.contrib.*' --exclude '*.keep'  $FROM $TO"
    echo $CMD
    test "$1" != show && eval $CMD
     
    echo
    echo "Modify the sets to point toward integration"
    CMD="perl -i -pe s/clssund/cmxi/g,s/VDEV/VINT/g,s/DEV/INT/g $TO/COMMON/sets"
    echo $CMD
    test "$1" != show && eval $CMD
    Tout va bien sur le script mais ce qui m'embte c'est cette boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    for dir in $DIRS; do
        SUBDIR=`dirname $dir`
        test ! -d $TO/$SUBDIR && echo "Creating missing dir  $TO/$SUBDIR" &&  mkdir $TO/$SUBDIR 
        CMD="$RSYNC $RSYNC_OPTS  --exclude '.nfs*' --delete --exclude 'findmerge.log*' --exclude '*.contrib' --exclude '*~' --exclude '*.contrib.*' --exclude '*.keep'  $FROM/$dir $TO/$SUBDIR"
        echo $CMD
        test "$1" != show && eval $CMD
    done
    Ma demande :Afin d'optimiser le script, comment faire pour remplacer cette boucle par une seule ligne de commande ??

    Merci à l'avance

  2. #2
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Post reste d'actualité
    Merci à l'avance

  3. #3
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Bonjour

    Citation Envoyé par hchagraoui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    for dir in $DIRS; do
        SUBDIR=`dirname $dir`
        test ! -d $TO/$SUBDIR && echo "Creating missing dir  $TO/$SUBDIR" &&  mkdir $TO/$SUBDIR 
        CMD="$RSYNC $RSYNC_OPTS  --exclude '.nfs*' --delete --exclude 'findmerge.log*' --exclude '*.contrib' --exclude '*~' --exclude '*.contrib.*' --exclude '*.keep'  $FROM/$dir $TO/$SUBDIR"
        echo $CMD
        test "$1" != show && eval $CMD
    done
    Ma demande :Afin d'optimiser le script, comment faire pour remplacer cette boucle par une seule ligne de commande ??
    Ce que tu veux dire c'est que dans ce bout de code, ce n'est pas rsync qui prends le plus de temps mais la boucle en elle-même ? Et de manière si significative que tu dois tout faire en une seule exécution de rsync ?



    Bref, je vois pas trop quel est ton problème. Tu peux copier plusieurs sources dans une destination, exactement comme avec cp. La création conditionelle du dossier n'a pas besoin d'être dans la boucle non plus...



    PS: Le sujet du message est à changer.

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

Discussions similaires

  1. J'ai un probleme tres coriace I need help
    Par red1kissi dans le forum Bases de données
    Réponses: 7
    Dernier message: 16/06/2006, 08h29
  2. Panier virtuel need Help!!
    Par louli_computing dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 12/06/2006, 13h53
  3. Récupération xml récalcitrante edit : need help
    Par InDaWinD dans le forum Général Python
    Réponses: 3
    Dernier message: 14/04/2006, 11h28
  4. Need help pour installer upgrade linux Debian
    Par jejerome dans le forum Administration système
    Réponses: 2
    Dernier message: 26/03/2006, 19h26
  5. need help pour : boucle & expression régulière
    Par Fabouney dans le forum Langage
    Réponses: 5
    Dernier message: 05/08/2005, 02h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo