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é?
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.
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
).
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.