[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: