web-dev-qa-db-fra.com

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

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

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

Tout d'abord, est-ce correct?

Si la valeur est true, est-il possible pour rsync de ne pas utiliser un répertoire temporaire, mais plutôt de créer le fichier dans le répertoire cible et de continuer à l'écrire jusqu'à ce qu'il soit terminé?

34
Cheetah

Oui, cela 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 peut également être trouvée ici:

--en place

Cette option modifie la manière dont rsync transfère un fichier lorsque les données du fichier doivent être mises à jour: au lieu de la méthode par défaut consistant à créer une nouvelle copie du fichier et à le déplacer à la fin, rsync écrit les données mises à jour directement dans la destination. fichier.

41
superuser0

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écuterez). Vous pouvez contrôler ce comportement en utilisant ces options rsync:

   --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 page de manuel rsync (ce qui suit n’est qu’un petit extrait de la grande section sur l’utilisation de --partial-dir).

15
terdon

rsync crée des fichiers temporaires dans le répertoire cible. Ce fichier est nommé comme la source mais avec une extension. Ça pourrait être comme ça:

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

L'extension est supprimée une fois que le fichier a été vérifié comme étant 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 le fichier ne soit pas visible à cause des autorisations. Assurez-vous que vous avez suffisamment de permission pour voir tous les fichiers ainsi que ceux qui ne vous appartiennent pas afin de voir les fichiers temporaires.

5
Simon