Re: rsync исключить .*, но включить один из них
On Fri, Jul 18, 2014 at 01:09:12PM +0600, Dmitry Podkovyrkin wrote:
> Здравствуйте.
>
> Для резервных копий написал небольшой скрипт, который периодически, при
> наличии хорошего интернета, с помощью rsync делает синхронизацию данных из
> $HOME в арендованный VDS по ssh.
> Конечно я исключил из архивируемых файлов все имена с точкой в начале.
> Но тут начал пользоваться заметками Gnote, а оно хранит данные в
> ~/.local/share/gnote/* и мой rsync никак не хочет включать этот каталог в
> архивацию. Подскажите пожалуйста как его заставить.
> Строка rsync:
> rsync -e "ssh -p *" -auvh --progress --delete
> --include="*/.local/share/gnote*" --exclude=".*" /home/d/
> my.host.name:/home/d/backup
>
> Эту часть (--include="*/.local/share/gnote*") менял по разному. Не
> получается.
Может быть пишу поздновато, но...
Попробуйте так (порядок --include/--exclude важен):
rsync -e "ssh -p *" -auvh --progress --delete --include="/.local/" --include="/.local/share/" --include="/.local/share/gnote/" --include="/.local/share/gnote/*" --exclude="/.local/*" --exclude=".*" /home/d/ my.host.name:/home/d/backup
И смотрите man rsync где-то с этого места (в разделе
"INCLUDE/EXCLUDE PATTERN RULES"):
Note that, when using the --recursive (-r) option (which is
implied by -a), every subcomponent of every path is visited
from the top down, so include/exclude patterns get applied
recursively to each subcomponent’s full name (e.g. to include
"/foo/bar/baz" the subcomponents "/foo" and "/foo/bar" must not be
excluded).
Reply to: