49 votes

rsync - crée-t-il un fichier temporaire pendant le transfert ?

Pour autant que je sache, rsync ne crée pas le fichier dans le répertoire cible tant qu'il n'est pas terminé.

Cela doit signifier qu'il crée le fichier dans un répertoire temporaire quelque part et qu'il le copie dans le répertoire cible une fois l'opération terminée.

Tout d'abord, est-ce correct ?

Si c'est le cas, est-il possible pour rsync de ne pas utiliser de répertoire temporaire et de créer à la place le fichier dans le répertoire cible et de continuer à écrire dessus jusqu'à ce qu'il soit complet ?

65voto

Viktor Nordling Points 1736

Oui, il crée un fichier temporaire.

Selon la page de manuel vous pouvez spécifier le répertoire dans lequel le fichier temporaire est stocké avec le paramètre -T comme dans

-T, --temp-dir=DIR créer des fichiers temporaires dans le répertoire DIR

La réponse à la deuxième partie de votre question s'y trouve également :

--en place

Cette option modifie la manière dont rsync transfère un fichier lorsque ses données doivent être mises à jour : au lieu de la méthode par défaut qui consiste à créer une nouvelle copie du fichier et à la mettre en place lorsqu'elle est terminée, rsync écrit les données mises à jour directement dans le fichier de destination.

15voto

Mohsin Points 11

Il crée un fichier temporaire, par défaut dans le répertoire cible et nommé .<FILE_NAME>.<RANDOM_STRING> . Ainsi, si vous copiez foo.txt il créera un fichier tmp appelé .foo.txt.GV4H3 ( GV4H3 est la chaîne aléatoire qui sera différente à chaque fois que vous l'exécutez). Vous pouvez contrôler ce comportement à l'aide des éléments suivants rsync options :

   --partial
          By default, rsync will delete any partially transferred
          file if the transfer is interrupted.  In  some  circum
          stances  it  is more desirable to keep partially trans
          ferred files. Using the --partial option tells rsync to
          keep  the  partial  file which should make a subsequent
          transfer of the rest of the file much faster.

   --partial-dir=DIR
          A better way to keep partial files than  the  --partial
          option  is  to  specify a DIR that will be used to hold
          the partial data (instead of writing it out to the des
          tination file).  On the next transfer, rsync will use a
          file found in this dir as data to speed up the  resump
          tion  of  the  transfer and then delete it after it has
          served its purpose.

Veuillez lire les parties pertinentes de la rsync (ce qui suit n'est qu'un petit extrait de la grande section sur la façon d'utiliser le logiciel --partial-dir ).

5voto

jamieQ Points 280

Rsync crée des fichiers temporaires dans le répertoire cible. Ce fichier est nommé comme le fichier source, mais avec une extension. Il pourrait ressembler à ceci :

source: foo.bar 
target temp: foo.bar.hzmkjt7 (hzmkjt7 is just an example) 

L'extension est supprimée après vérification que le fichier est une copie exacte de la source. Au cours du processus de renommage, la propriété, les autorisations et l'heure de modification sont définies. Il est donc possible que vous ne voyiez pas le fichier à cause des autorisations. Assurez-vous que vous avez suffisamment d'autorisations pour voir tous les fichiers ainsi que ceux qui ne vous appartiennent pas afin de voir les fichiers temporaires.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X