Как получить 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 всегда применяется к источнику, локальному или нет. (Страница руководства: "Эти файлы правил для каждого каталога должны быть созданы на отправляющей стороне, потому что именно отправляющая сторона сканирует доступные файлы для передачи".)

Другие вопросы по тегам