Я думаю , что вы можете использовать -no-
варианты , rsync
чтобы НЕ копировать права собственности или права доступа файлов вы sync'ing.
Выдержка из страницы руководства rsync
--no-OPTION
You may turn off one or more implied options by prefixing the option
name with "no-". Not all options may be pre‐fixed with a "no-":
only options that are implied by other options (e.g. --no-D,
--no-perms) or have different defaults in various circumstances (e.g.
--no-whole-file, --no-blocking-io, --no-dirs). You may specify
either the short or the long option name after the "no-" prefix (e.g.
--no-R is the same as --no-relative).
For example: if you want to use -a (--archive) but don’t want -o
(--owner), instead of converting -a into -rlptgD, you could specify
-a --no-o (or -a --no-owner).
The order of the options is important: if you specify --no-r -a, the
-r option would end up being turned on, the opposite of -a
--no-r. Note also that the side-effects of the --files-from
option are NOT positional, as it affects the default state of several
options and slightly changes the meaning of -a (see the --files-from
option for more details).
Владение и разрешения
Просматривая справочную страницу, я думаю, вы захотите использовать что-то вроде этого:
$ rsync -avz --no-perms --no-owner --no-group ...
Чтобы удалить файлы, которые не существуют, вы можете использовать --delete
переключатель:
$ rsync -avz --no-perms --no-owner --no-group --delete ....
Timestamps
Что касается отметки времени, я не вижу способа сохранить это без изменения способа сравнения файлов SOURCE и DEST. Вы можете указать rsync
игнорировать метки времени, используя этот переключатель:
-I, --ignore-times
Normally rsync will skip any files that are already the same size
and have the same modification timestamp. This option turns off this
"quick check" behavior, causing all files to be updated.
Обновить
Для отметок времени, --no-times
может сделать то, что вы ищете.
>f..T...
которые предполагают, что на месте назначения установлены флажки файлов и время модификации, чего я и стараюсь избегать.Я думаю, что легче избежать опции -a
и установите только те параметры, которые вы хотите.
Если вам нравятся все параметры, но не модификации пользователя -o , group -g , time -t и permissions -p, вы можете вычесть эти четыре параметра из эквивалента архива.
Чтобы удалить файлы в месте назначения, используйте опцию --delete .
На ваш вопрос: Но я думаю, что все файлы будут проверены - rsync не может передавать / проверять только файлы, которые были изменены только содержимым.
источник
-l
для ссылок,-D
устройств (рассматривается так же, как--specials
), я думаю, что-r
одного достаточно, если мы говорим о контенте.Я думаю, что вы ищете вариант
со страницы руководства:
Если вы действительно хотите удалить файлы, отсутствующие в каталоге dir, используйте
--delete
источник
Вы можете заставить rsync игнорировать проверки, основанные на времени и размере мода файла, и использовать подход на основе chksum с ключом -c.
Это означает, что для этого нужно сравнить весь файл по частям (и передать соответствующие метаданные туда и обратно между источником и местом назначения) независимо от того, совпадают ли время и размер файла, но будет передавать только те чаны, которые отличаются между источником и местом назначения.
Использование этого переключателя в сочетании с другими переключателями, предложенными другими, должно ограничивать то, что копируется (только копирование того, что изменилось), и имеет преимущество, заключающееся в проверке согласованности между источником и назначением, НО это занимает больше времени в зависимости от скорости вашего соединения, так как он должен чксумить файл кусками с обеих сторон и сравнить).
источник
Команда ниже будет работать отлично, я проверил ее на собственное требование, она займет только изменение содержимого.
источник