rsync / rsnapshot и исключить / включить каталог, абсолютный путь

444
res1

Я использую rsnapshot и хочу исключить каталог по абсолютному пути.

Я добавил в rsnapshot.conf exclude /home/user/data rsnapshot будет использовать эту команду rsync:

/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \ --exclude=/home/user/data /home \ /backupdir/hourly.0/localhost/ 

и это работает, это исключает /home/user/datadir, но мне не ясно, почему это работает. Чтение man-страниц rsync (и, например, этого ответа https://askubuntu.com/a/349625 ) исключает / включает шаблоны, которые начинаются с / являются, привязаны к корню передачи, поэтому я думал, что это не удастся, потому что это попытаться исключить

/home/home/user/data 

Может кто-нибудь прояснить мне этот момент?
Как правильно исключить каталог, используя абсолютный путь?

Спасибо за помощь

0

1 ответ на вопрос

0
Fawzi Masri

Я знаю, что это старый, но только для записи ...

--Exclude указывает шаблон, а не местоположение в дереве каталогов "/ home". rsync ничего не добавит к этому шаблону. поэтому "/ home" не добавляется / не дублируется, потому что вы указали --relative.

если вы добавите -iv к вашей команде rsync, rsync перечислит все каталоги и файлы в "/ home", которые он будет обрабатывать. Вы заметите, что любой элемент каталога с "/ home / user / data" будет скрыт из-за шаблона исключения "/ home / user / data /"

если вы использовали --exclude = data, то все элементы dir с «data» в их имени будут опущены. так, например, / home / user / data, или / home / user2 / data, или / home / user3 / data, также будут опущены. так как у всех есть образец "данные" в них.

Похожие вопросы