Как получить rsync для загрузки списка (полных правил, не ограниченных, например, --include-from) правил фильтрации из файла?
rsync
имеет различные опции для чтения различных конфигураций из файлов, так что вам не нужно связывать кучу отдельных --include
или же --exclude
варианты вместе. Все эти параметры (насколько я могу судить) читаются из файла на вашем локальном компьютере:
--exclude-from=FILE
--include-from=FILE
--files-from=FILE
Документ для --files-from=FILE
даже поясняет, что вы можете использовать его с локальным или удаленным ФАЙЛОМ:
Кроме того, файл --files-from может быть прочитан с удаленного хоста вместо локального хоста, если вы укажете "host:" перед файлом (хост должен соответствовать одному концу передачи). Для краткости вы можете указать только префикс ":", что означает "использовать удаленный конец передачи".
Что мне интересно, так это где или что эквивалентно --filter
? У нас есть --include
а также --include-from
; --exclude
а также --exclude-from
, Но где --filter-from
? (Или что является самым близким эквивалентом этому?)
В разделе ВКЛЮЧИТЬ / ИСКЛЮЧИТЬ ПРАВИЛ ШАБЛОНА приведены примеры использования списка шаблонных правил, как если бы они были включены в файл...
+ /some/
+ /some/path/
+ /some/path/this-file-is-found
+ /file-also-included
- *
но единственное упоминание об использовании их в файле - это файл, загруженный из merge
или же dir-merge
:
merge, . specifies a merge-file to read for more rules.
dir-merge, : specifies a per-directory merge-file.
Я не смог найти упоминания о том, относится ли это к файлу слияния на локальном или удаленном хостах, но из того, что я пробовал до сих пор, похоже, что он работает только с файлом на удаленном хосте.
1 ответ
Это именно тот вариант:
rsync --filter "merge /some/filterlist.conf"
(Обратите внимание, как -F
псевдоним --filter "dir-merge /.rsync-filter"
.)
merge
файлы читаются из локальной (клиентской) системы (если вы явно не передаете эту опцию на сервер, используя -M
). Если источник удаленный, ему автоматически отправляются все правила фильтрации.
между тем dir-merge
всегда применяется к источнику, локальному или нет. (Страница руководства: "Эти файлы правил для каждого каталога должны быть созданы на отправляющей стороне, потому что именно отправляющая сторона сканирует доступные файлы для передачи".)