downloading only specific directories from directory tree
Kevin Korb
kmk at sanitarium.net
Wed Jan 10 23:27:11 UTC 2018
1. You don't appear to be including anything that is within the colon
dirs so they are being left out by --prune-empty-dirs.
2. Includes only override excludes that follow them. Since your debug
excludes are exceptions to the openSUSE_Leap_42.2/*** include they must
be before it not after it.
On 01/10/2018 05:46 PM, Istvan Gabor via rsync wrote:
> Dear Kevin:
>
> ~ 1 year ago your answer helped me to solve my problem.
> This time I would like to do a similar thing but little bit modified.
> I read again carefully INCLUDE/EXCLUDE PATTERN RULES section of rsync
> manual but still cannot comprehend every part of it.
>
> I understand I have to add include patterns first and exclude patterns
> second. But it is not clear if I have to add all the include patterns
> first and all the exclude patterns after them. Or do I have add
> include/exclude groups?
>
> Now I would like to mirror openSUSE_Leap_42.2 dirs from
> ftp://ftp.halifax.rwth-aachen.de/opensuse/repositories/
> but only from specified directories and without files with debuginfo
> or debugsource patterns in their names.
>
> I tried this command:
>
> rsync -av --include-from=filters.txt --prune-empty-dirs \
> rsync://ftp.halifax.rwth-aachen.de/opensuse/repositories/ \
> opensuse/repositories
>
> where filters.txt contains:
>
> + /filesystems
> + /filesystems:
> + /games
> + /games:
> + /graphics
> + /graphics:
> + /hamradio
> + /hamradio:
> + /hardware
> + /hardware:
> ...
> + openSUSE_Leap_42.2/***
> - *debuginfo*.rpm
> - *debugsource*.rpm
> - *
>
> but it doesn't work the way I'd like.
>
> 1. The directories ending with : in their names are not mirrored.
> I tried eg /games: , /games\: and "/games:", none of these worked.
>
> 2. The other directories are mirrored but debuginfo and debugsource
> files are not excluded.
>
> I'd appreciate if you explained what the problem is and how to solve it.
>
> Thanks in advance,
>
> Istvan
>
>
>
>
>
> On Fri, 20 Jan 2017 18:15:00 -0500, Kevin Korb wrote:
>> An include only overrides an exclude that follows it. So, you would
>> need something like this:
>>
>> + */
>> + openSUSE_13.2/***
>> - *
>>
>> Then add --prune-empty-dirs to your rsync command line. I left off the
>> initial ** because it doesn't really mean anything unless openSUSE_13.2
>> isn't always the entire directory name in which case 1 * would do.
>>
>> Another way to explain it is that by default everything is included. An
>> exclude rule makes exceptions. An include rule makes exceptions to the
>> exclude rule.
>>
>> On 01/20/2017 06:08 PM, Istvan Gabor wrote:
>>> Hello:
>>>
>>> I have read rsync manual and several howtos on how to use rsync, still
>>> I don't know if it's doable what I want to do, and if yes, how.
>>>
>>> The scenario:
>>>
>>> I would like to make a local copy of openSUSE 13.2 repositories.
>>> I use openSUSE linux.
>>>
>>> The repos are located in a multi-level directory structure, eg:
>>>
>>> ftp://ftp.halifax.rwth-aachen.de/opensuse/repositories/
>>>
>>> Let's call this directory the root dir.
>>>
>>> Each directory in the root has subdirectories, and one of the
>>> subdirectories
>>> is named "openSUSE_13.2". The openSUSE_13.2 dir can be one, two, or more
>>> level
>>> downstairs in the root dir, eg:
>>>
>>> http://download.opensuse.org/repositories/Apache/openSUSE_13.2/
>>>
>>> http://download.opensuse.org/repositories/Apache:/MirrorBrain/openSUSE_13.2/
>>>
>>>
>>>
>>> There are plenty of directories in the root dir, and each
>>> subdirectory can
>>> have several subdirectories.
>>>
>>> Is it possible, using rsync, to download only all "openSUSE_13.2"
>>> directories with
>>> their contents, without specifying directly one by one every
>>> subdirectory
>>> to be included or excluded?
>>>
>>> I tried to use filters.txt file with content:
>>>
>>> + **openSUSE_13.2/***
>>>
>>> with this command:
>>>
>>> rsync -av --include-from=filters.txt
>>> rsync://ftp.halifax.rwth-aachen.de/opensuse/repositories/ ./
>>>
>>> This downloads every directory. How can I exclude those are not
>>> openSUSE_13.2?
>>>
>>> Thanks,
>>>
>>> Istvan
>>>
>
>
--
~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,
Kevin Korb Phone: (407) 252-6853
Systems Administrator Internet:
FutureQuest, Inc. Kevin at FutureQuest.net (work)
Orlando, Florida kmk at sanitarium.net (personal)
Web page: http://www.sanitarium.net/
PGP public key available on web site.
~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 224 bytes
Desc: OpenPGP digital signature
URL: <http://lists.samba.org/pipermail/rsync/attachments/20180110/831b8b40/signature.sig>
More information about the rsync
mailing list