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

Administration système Discussion :

[Rsync] Tout exclure, sauf. . .


Sujet :

Administration système

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut [Rsync] Tout exclure, sauf. . .
    Bonjour,

    Utilisant rsync je souhaite synchroniser deux répertoires dont je souhaite tout exclure, sauf, certains repértoire bien précis.

    J'ai essayer différentes variante de --exclude et --include avec des ** et des * mais rien n'y fait, il ne m'inclut pas mes fichiers.......

    Quelqu'un à t'il déjà rencontré ce problème et résolut celui ci ?

    merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Oui, c'est possible mais il faut se farcir la logique particulière des include-exclude files. J'ai passé beaucoup de temps à comprendre le man sur ce coup là.

    Imagine que tu souhaites synchroniser les répertoires musique/ et photos/ de ton home. Tu crées un fichier, mettons my.include.files contenant ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # inclusion du répertoire musique et photo
    + musique
    + photos
     
    # inclusion du cotenu de ces répertoires
    + musique/**
    + photos/**
     
    # exclusion de tout le reste
    - *
    Ensuite, tu fais simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rsync -av include-from=my.include.files /home/ton_user/ /repertoire/de/destination/
    Et n'oublie pas l'option -n (--dry-run) pour des essais à blanc. Surtout si tu utilises l'option --delete et ses petits frères!

    Je t'accorde que c'est un peu tordu, mais une fois que tu saisis, tu y trouves même un certaine logique!
    :q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
    :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
    Jabber: ripat at im.apinc.org

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Salut ripat !

    Ca y'est j'ai compris ce qu'il me manquait!

    En fait j'avais bien saisit qu'il fallait inclure, puis exclure tout le reste (j'avais lu cela ds le man peut être).
    Cependant ! Et c'est là que tu te transformes en héro ;D

    Je ne faisais pas l'inclusion du répertoire avec ** !!!

    Super Je n'ai plus qu'à refaire mon script par liste blache plutot que liste noir.

    a plus et merci

    PS : je mettrait résolu plus tard lorsque j'aurai vérifier tester ce que j'espère avoir compris.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Par contre, ce que je trouve agaçant avec ces include/exlude files, c'est qu'il est extérieur au script qui l'utilise. Voici comment je fais pour plus de visibilité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    echo "
    # inclusion du répertoire musique et photo
    + musique
    + photos
     
    # inclusion du cotenu de ces répertoires
    + musique/**
    + photos/**
     
    # exclusion de tout le reste
    - *
    " > /tmp/my.include.file
     
    rsync -av include-from=/tmp/my.include.files /home/ton_user/ /repertoire/de/destination/
    De cette manière je n'ai pas à gérer plusieurs fichiers par script rsync.
    :q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
    :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
    Jabber: ripat at im.apinc.org

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Tu sembles dire qu'en ligne de commande cela n'est pas possible ?
    Car en fait c'était ce que je comptais faire :\

    Si cela ne fonctionne pas, effectivement, l'exemple que tu me montres est encore.... comment dire sans en faire trop.... d'une aide précieuse au moment le plus opportun !
    Bref t'assures

    Merci,
    a plus

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Hello,

    C'est bon Sa fonctionne ! Et même en ligne de commande.

    Comme ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    time rsync \
    --log-format="%o %n"  \
    -m -a --stats --del --dry-run \
    --include="common-classes/" \
    --include="common-classes/**" \
    --include="cron/" \
    --include="cron/**" \
    --exclude="**" \
    /home/myinterf/DEVELOPPEMENT/ /home/myinterf/.tmp/70/
    Je n'ai plus qu'un petit problème pour récupérer les répertoires vides.... Et se sera parfait

    encore merci,
    a plus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tout masquer sauf un id
    Par Bobybx dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 01/03/2007, 15h33
  2. [RegEx] Tout récupérer sauf les attributs alt= et title=
    Par juJuv51 dans le forum Langage
    Réponses: 16
    Dernier message: 28/02/2007, 23h07
  3. [VBA-W]Trouver TOUTES couleur sauf le noir ?
    Par kitcreanet dans le forum VBA Word
    Réponses: 7
    Dernier message: 28/08/2006, 14h10
  4. Réponses: 4
    Dernier message: 08/08/2006, 12h47
  5. [RegEx] tout remplacer sauf ...
    Par prgasp77 dans le forum Langage
    Réponses: 1
    Dernier message: 24/04/2006, 14h26

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