Мне пришлось разбить свои задачи rsync на более мелкие задания, учитывая размер моих каталогов. По сути, я делаю это в алфавитном порядке (т.е. скрипт, который синхронизирует папки, начиная с A-D, E-H и т. Д. И т. Д.).
У меня проблема ... мой файл A-D filter.txt работает нормально, но все остальные не работают. Я считаю, что проблема в том, что путь, который я синхронизирую:
/AUser/db/Backups/***
/AUser2/db/Backups/***
/CUser/db/Backups/***
/EUser/db/Backups/***
Мой файл filter.txt для A-D выглядит так:
- E*
- e*
- F*
- f* (etc all the way through Z)
+ */db/
+ */db/Backups/***
- *
Тот, что выше, работает без проблем. Однако это не так:
- A*
- a*
- B*
- b*
- C*
- c*
- D*
- d*
- I*
- i*
- J* (etc all the way through Z)
+ */db/
+ */db/Backups/***
- *
Я предполагаю, что мое исключение либо d, либо B вызывает это (это исключает папку db или папку резервных копий ??), но я не могу понять, почему, поскольку у меня есть включение для * / db / и * / db / Резервные копии / ***
Спасибо!!
Фильтры rsync работают с первым найденным совпадением - так что да, ваши исключения «d *» и «B *» исключают ваши подкаталоги «db» и «Backups» до того, как вы включаете совпадения.
Было бы лучше просто включить конкретные пути, которые вы хотите включить, а затем исключить все остальное, например:
+ /[E-H]* # include top-level dirs starting with E through to H
+ */db/ # include "db" subdirectories
+ */db/Backups/ # include "db/Backups" subdirectories
- */ # exclude all other directories