Я хочу знати, як використовувати rsync для синхронізації з рекурсивними папками, але мені потрібно лише оновити нові файли або оновлені файли (лише вміст, не власник, групу чи часову позначку), і я хочу видалити файли, які не існують у джерелі .
Я хочу знати, як використовувати rsync для синхронізації з рекурсивними папками, але мені потрібно лише оновити нові файли або оновлені файли (лише вміст, не власник, групу чи часову позначку), і я хочу видалити файли, які не існують у джерелі .
Відповіді:
Я думаю , що ви можете використовувати -no-
варіанти , rsync
щоб НЕ копіювати права власності або права доступу файлів ви sync'ing.
--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 ....
Щодо часової позначки, я не бачу способу зберегти це, не змінюючи те, як ви зробите порівняння файлів 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
можна робити те, що ви шукаєте.
Я думаю, що простіше уникнути варіанту -a
$ -a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
і встановіть лише потрібні варіанти.
Якщо вам подобаються всі параметри, але не модифікації користувача -o , group -g , time -t та дозволів -p, щоб ви могли відняти ці чотири варіанти з еквіваленту архіву.
$ -rlD
Для видалення файлів за призначенням скористайтеся опцією --delete .
На ваше запитання: Але я думаю, що всі файли будуть перевірені - rsync не може передавати / перевіряти лише ті файли, які змінилися лише за змістом.
-l
призначений для посилань, -D
пристроїв (трактуються так само --specials
), я думаю, що -r
одного достатньо, якщо ми говоримо про вміст
Я думаю, що ти шукаєш варіант
rsync -r --size-only
зі сторінки чоловіка:
--size-only
This modifies rsync’s "quick check" algorithm for finding files that need to be transferred,
changing it from the default of transferring files with either a changed size or a changed
last-modified time to just looking for files that have changed in size. This is useful when
starting to use rsync after using another mirroring system which may not preserve timestamps
exactly.
Якщо ви дійсно хочете видалити файли, відсутні в джерелі використання dir --delete
Ви можете змусити rsync ігнорувати перевірки на основі часу та розміру модного файлу та використовувати підхід на основі chksum за допомогою перемикача "-c".
-c, --checksum skip based on checksum, not mod-time & size
Це означає, що йому потрібно порівнювати весь файл фрагментами (і переносити відповідні метадані вперед і назад між джерелом та пунктом призначення, щоб це відбулося) незалежно від того, збігаються час і розмір файлу, але передаватимуть лише ті фрагменти, які відрізняються між джерелом і пунктом призначення.
Використання цього перемикача спільно з іншими перемикачами, запропонованими іншими, повинно обмежувати скопійоване (лише копіювання того, що змінилося), і має перевагу робити перевірку узгодженості між джерелом та пунктом призначення, Але це займе більше часу, залежно від швидкості зв'язку, оскільки він повинен зрізати фрагменти файлів з обох сторін і порівняти).
>f..T...
яких підказує, що файлові позначки та час модифікації встановлюються за призначенням, чого я намагаюся уникати.