34

Насколько я вижу, rsync не создает файл в целевом каталоге, пока он не будет завершен.

Это должно означать, что он создает файл во временном каталоге и копирует файл в целевой каталог после его завершения.

Во-первых, это правильно?

Если true, возможно ли для rsync установить не использовать временный каталог, а вместо этого создать файл в целевом каталоге и просто продолжать запись в него до его завершения?

3 ответа3

39

Да, он создает временный файл.

В соответствии со страницей руководства вы можете указать каталог, в котором хранится временный файл, с параметром -T, как в

-T, --temp-dir = DIR создавать временные файлы в каталоге DIR

Ответ на вторую часть вашего вопроса также можно найти там:

--на месте

Этот параметр изменяет способ, которым rsync передает файл, когда необходимо обновить данные файла: вместо метода по умолчанию создания новой копии файла и перемещения его на место после завершения, rsync вместо этого записывает обновленные данные непосредственно в место назначения. файл.

14

Он по умолчанию создает временный файл в целевом каталоге с именем .<FILE_NAME>.<RANDOM_STRING> . Итак, если вы копируете foo.txt , он создаст файл tmp с именем .foo.txt.GV4H3 (GV4H3 - случайная строка, которая будет отличаться при каждом запуске). Вы можете управлять этим поведением, используя следующие параметры 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.

Пожалуйста, прочтите соответствующие части справочной страницы rsync (ниже приведен лишь небольшой фрагмент большого раздела о том, как использовать --partial-dir).

4

rsync создает временные файлы в целевой директории. Этот файл называется как источник, но с расширением. Это может быть так:

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

Расширение удаляется после проверки того, что файл является точной копией источника. Во время процесса переименования определяются права доступа и время модификации. Так что возможно, что вы не видите файл из-за разрешений. Убедитесь, что у вас достаточно прав для просмотра всех файлов, а также тех, которые вам не принадлежат, для просмотра временных файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .