Как вы получаете rsync, чтобы исключить любой каталог с именем кеш? - PullRequest
3 голосов
/ 17 октября 2011

Я новичок в rsync и немного читал об исключении файлов и каталогов, но я не до конца понимаю и, похоже, не могу заставить его работать.

Я просто пытаюсь выполнить резервное копирование всех веб-сайтов в корне сервера, но не хочу никаких файлов кэша CMS.

Можно ли исключить какой-либо каталог с именем cache?

Я перепробовал много вещей за эти недели (которые я не помню), но в последнее время я пробовал такие вещи:

sudo rsync -avzO -e --exclude *cache ssh username@11.22.33.44:/home/ /Users/username/webserver-backups/DEV/home/

и это:

sudo rsync -avzO -e --exclude cache/ ssh username@11.22.33.44:/home/ /Users/username/webserver-backups/DEV/home/

и это:

sudo rsync -avzO -e --exclude */cache/ ssh username@11.22.33.44:/home/ /Users/username/webserver-backups/DEV/home/

и это:

sudo rsync -avzO -e --exclude *cache/ ssh username@11.22.33.44:/home/ /Users/username/webserver-backups/DEV/home/

Извините, если это легко, я просто не смог найти информацию, которую я понимаю, потому что все они говорят о пути, который нужно исключить.

Просто у меня нет определенного пути, который я хочу исключить - просто имя каталога, если это имеет смысл.

1 Ответ

8 голосов
/ 17 октября 2011
rsync --exclude cache/ ....

должно работать как персики.Я думаю, что вы можете запутать некоторые вещи, так как -e требует опции (например, -e "ssh -l ssh-user"). Редактировать Если взглянуть на ваши командные строки чуть ближе, то оказывается, что это именно ваша проблема.Вы должны были сказать

--exclude cache/ -e ssh

, хотя вы могли бы просто сбросить -e ssh, поскольку ssh является значением по умолчанию.


Я также рекомендовал бы вам ознакомиться с правилами фильтрации:

rsync -FF ....

Таким образом, вы можете включать файлы .rsync-filter во все дерево каталогов, содержащие такие вещи, как

-cache/

Это делает вещи более гибкими, делает командные строки более читабельными, и вы можетеделать исключения внутри определенных поддеревьев.

...