Include/Exclude problems

Mag Gam magawake at gmail.com
Sun Jan 25 22:26:28 GMT 2009


Thanks Matt for the response.

The *** was the magic bullet and it works. Thanks.

I was curious about the --link-dest argument.  Will this speed up
anything? I noticed it has the same default behavior of cp -al

If its faster or more efficient I would be more than happy to implement this.







On Sun, Jan 25, 2009 at 11:03 AM, Matt McCutchen <matt at mattmccutchen.net> wrote:
> On Sun, 2009-01-25 at 10:29 -0500, Mag Gam wrote:
>> I am trying to rsync a very large filesystem which is about 3TB, but
>> naturally I want to exclude a lot of things. However, I am really
>> struggling with excluding directories.
>>
>> SRC=/dasd/december/2008  #Notice there is no trailing slash
>> TARGET=/backup/december/2008 #Notice there is no trailing slash
>>
>> I want to exclude
>>
>> /dasd/december/2008/Data
>> /dasd/december/2008/Logs
>> /dasd/december/2008/Catalogs
>>
>> #NOTICE: I added a trailing slash for $SRC but nothing for $TARGET
>> rsync --exclude Data/** --exclude Catalogs/**  --exclude Logs/**
>> --numeric-ids --archive --delete --delete-excluded --human-readable
>> --stats --verbose --progress $SRC/ $TARGET.0
>>
>> For some reason Data Logs and Catalogs are still being synced.
>
> Your rules should match all the contents of the Data, Logs, and Catalogs
> dirs, so the only thing I can guess is that the shell is expanding the
> whildcards.  To avoid that, quote the rules:
>
> --exclude 'Data/**' --exclude 'Catalogs/**' --exclude 'Logs/**'
>
> Still, those rules may not be quite what you want.  The
> directories /dasd/december/2008/{Data,Logs,Catalogs} themselves are not
> excluded; to exclude them, you can change the trailing ** on each rule
> to *** or just remove it and rely on exclusion of the directory
> short-circuiting the traversal of its contents (see the man page).
>
> Also, the rules will match directories named Data, Logs, or Catalogs
> anywhere under /dasd/december/2008 .  You probably want to anchor them
> with a leading slash to match only the specific directories you listed.
>
> With both of these changes, the rules would be:
>
> --exclude /Data/ --exclude /Catalogs/ --exclude /Logs/
>
>> BTW, I am using the hardlink method to keep snapshots. So before the
>> rsync I am cp -al from 0 to 1 and removing the oldest
>
> You might consider --link-dest=$TARGET.1 instead; it will save you a
> step and avoid corrupting the attributes of old backups.
>
> --
> Matt
>
>


More information about the rsync mailing list