• # Astuce

    Posté par . En réponse au message rsync et mode bloc. Évalué à 3. Dernière modification le 25 septembre 2013 à 17:58.

    Juste une astuce, je ne sais pas si elle s'applique à ton problème.

    Tu parles de déplacement de fichiers, et dans ce cas rsync refait un transfert du fichier, il n'a pas vu que c'est le même.

    Par exemple, un répertoire nommé dossier/, synchronisé sur serveur:dossier/.

    Initialement on fait

    rsync -a dossier/ serveur:dossier/
    

    Puis un jour on veut faire un déplacement de fichier, on fait :

    mv dossier/fichierA dossier/fichierB
    rsync -a dossier/ serveur:dossier/
    

    Et là c'est le drame. Il retransfère le fichierB.

    L'astuce c'est d'utiliser l'équivalence entre mv a b et ln a b; rm a, mais on va rajouter un rsync entre les deux.

    cp -al dossier/fichierA dossier/fichierB
    rsync -a dossier/ serveur:dossier/
    rm dossier/fichierA
    rsync -a --delete dossier/ serveur:dossier/
    

    J'utilise cp -al et non ln, car ça permet de conserver les permissions et de faire le machin recursivement pour un répertoire si c'est un répertoire qui est bougé.

    Et comme ça, ça passe très bien, il detecte que fichierA et fichierB sont des hard link, il crée fichierB comme un hard link sur fichierA dans la destination, et à l'étape suivante il supprime fichierA.

    Alors je ne sais pas si c'est de ce type de déplacement dont tu parles, mais c'est une astuce à connaître quand on utilise rsync.