1

У меня есть исходный каталог, который я периодически синхронизирую с целью, используя rsync:

rsync --bwlimit=1600 --recursive --times
      --omit-dir-times --copy-links --modify-window=30
      --inplace --delete-before --progress --stats --whole-file
      --itemize-changes --human-readable ./ /media/0123-4567/

Мишень СМИ просто правильный размер для синхронизации: целью является 1000 MB раздел, источник имеет 990 МБ файлов; синхронизация от источника до пустой цели работает нормально.

Проблема заключается в том, что я синхронизируюсь с целью, которая содержит более старую версию: некоторые из существующих исходных файлов меньше в текущей версии, а некоторые новые добавляются. Общий размер остается 990 МБ; но rsync, похоже, выбрал стратегию: «сначала скопируйте новые файлы, а затем обновите существующие», первая часть не будет работать, потому что пространство, которое должно быть освобождено с помощью обновления, еще не создано.

                                       version 1     version 2
 files not changed:                     800 MB        800 MB
 new files in v2:                         0 MB         80 MB
 files changed between versions:        190 MB        110 MB 

 total                                  990 MB        990 MB

Другими словами, как я могу заставить rsync сначала обновить цель (что в моем случае освободит место), а затем добавить новые файлы?

До сих пор я обходил это, имея два отдельных вызова, различающихся только по этому параметру:

rsync --existing [...]
rsync --ignore-existing [...]

Это сначала обновит существующие файлы, а потом скопирует новые; Есть ли способ сделать это с помощью одной команды?

1 ответ1

3

До сих пор я обходил это, имея два отдельных вызова, различающихся только по этому параметру:

rsync - существующий [...]
rsync --ignore-существующие [...]

Да, это правильный путь.

Это сначала обновит существующие файлы, а потом скопирует новые; Есть ли способ сделать это с помощью одной команды?

Незачем:

  • С точки зрения скорости, вы жертвуете лишь незначительными накладными расходами.
  • С точки зрения документации, это гораздо яснее в изложении того, что вы делаете, чем некоторые неявные способы.

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