Re: How to exclude all dotfiles in a folder but include a specific set?
[email protected] Mon, 9 Jan 2023 22:02:12 -0800
| Newsgroups | gmane.comp.sysutils.backup.rdiff-backup.general |
|---|---|
| Message-ID | <[email protected]> |
Nice, I haven't used --include/exclude before, but I have a use case now so I want to try it. How do I make this work on Windows where there isn't (AFAIK) a common root for all the drives? For example I want to do rdiff-backup \ --include C:/from1 \ --exclude C:/from1/exclude1 \ --exclude C:/from1/exclude2 \ --include H:/from2 \ --exclude H:/from2/exclude3 \ --include C:/from3 \ sourcedir \\nas4free\my-backup.rdiff-backup but I don't know what I can use for sourcedir that will allow me to include directories from both C: and H:. The 3 included directories are all logically related so I prefer to back them up to a single repository. Is there a way to do this on Windows? On 2023-01-09 12:30, EricZolf ewl+rdiffbackup-at-lavar.de |rdiff-backup-users| wrote: > Order does indeed matter _ and_ there is an implicit include "all" at the end, so that the slightly simpler following command should also work: > > rdiff-backup --terminal-verbosity 5 \ > --include /tmp/from/.2 \ > --exclude /tmp/from/.\* \ > --exclude /tmp/from/2 \ > /tmp/from ./to. > > It basically depends if you want to save the full path or not. > > K R, Eric. > > On January 9, 2023 11:42:10 AM UTC, Tobias Leupold <[email protected]> wrote: >> Yay, I made it :-D ;-) >> >> The --include and --exclude order actually DOES matter. >> >> If invoked like so: >> >> rdiff-backup --terminal-verbosity 5 \ >> --include /tmp/from/.2 \ >> --exclude /tmp/from/.\* \ >> --exclude /tmp/from/2 \ >> --include /tmp/from/\* \ >> --exclude / \ >> / ./to >> >> I get what I want: >> >> Processing changed file . >> Processing changed file tmp >> Processing changed file tmp/from >> Processing changed file tmp/from/.2 >> Processing changed file tmp/from/1 >> Processing changed file tmp/from/3 >> >> A bit hard to figure out, but it works! >> >> Thanks again for helping! >> >> Am Montag, 9. Januar 2023, 10:31:53 CET schrieb Tobias Leupold: >>> Hi Eric! >>> >>> Thanks for yout reply! >>> >>> The problem is that I don't know the complete list of the "normal" >>> folders I want to include. But I know a complete list of dotfiles I want >>> to include. >>> >>> So, if we have >>> >>> /tmp/from/1 >>> /tmp/from/2 >>> /tmp/from/3 >>> /tmp/from/.1 >>> /tmp/from/.2 >>> /tmp/from/.3 >>> >>> I want to exclude all the files starting with a ., but include a list of >>> specific files starting with a ".", e.g. /tmp/from/.2 (at this point, >>> it's not a problem yet I think ...). >>> >>> But I also want to include all the regular files and folders from >>> /tmp/from, with e.g. the exception of /tmp/from/2. But I don't know the >>> list to include. And that's the problem -- there could also be >>> /tmp/from/4, /tmp/from/5 and so on. >>> >>> Now if I do >>> >>> rdiff-backup \ >>> --include /tmp/from/\* \ >>> --exclude /tmp/from/2 \ >>> --include /tmp/from/.2 \ >>> --exclude /tmp/from/.\* \ >>> --exclude / \ >>> / ./to >>> >>> all the files from /tmp/from are included (also /tmp/from/2 and all the >>> /tmp/from/.whatever files) no matter the order of the --include and >>> --exclude statements. >>> >>> I also tried to mess with --include-regexp, but e.g. this: >>> >>> rdiff-backup --terminal-verbosity 5 \ >>> --include-regexp "/tmp/from/[^\.].+" \ >>> --exclude / \ >>> / ./to >>> >>> leads to no files included at all ... >>> >>> Am 09.01.23 um 07:16 schrieb Eric Zolf: >>>> Hi Tobias, >>>> >>>> what about something like: >>>> >>>> mkdir /tmp/from >>>> touch /tmp/from/.{un,}wanted /tmp/from/also{un,}wanted >>>> >>>> rdiff-backup -v5 backup \ >>>> >>>> --include /tmp/from/.wanted --exclude /tmp/from/.\* \ >>>> --include /tmp/from/alsowanted --exclude /tmp/from/\* \ >>>> /tmp/from /tmp/bak >>>> >>>> (and /tmp/bak contains then only the wanted files) >>>> >>>> So first the includes, then the corresponding excludes. It shouldn't >>>> make a difference if from the command line using --include/exclude or >>>> using files with --include/exclude-globbing-filelist >>>> >>>> Hope this helps, >>>> Eric >>>> >>>> On 08/01/2023 23:32, Tobias Leupold wrote: >>>>> Dear list, >>>>> >>>>> I use rdiff-backup to do automated backups on my server. I backup /, >>>>> but I >>>>> exclude everything and only include what I need. E.g. I use the >>>>> following call >>>>> >>>>> rdiff-backup --include-globbing-filelist /etc/backup.include \ >>>>> --exclude / \ >>>>> / /backup/data >>>>> >>>>> and specify a list of folders I want in /etc/backup.include, e.g. >>>>> >>>>> /etc/crontab >>>>> /etc/postfix >>>>> /etc/dovecot >>>>> /usr/local/bin >>>>> /usr/local/sbin >>>>> /srv >>>>> >>>>> That works just fine. >>>>> >>>>> Now I'm trying to adapt this to a machine with similar requirements, but >>>>> including some parts of a home directory. >>>>> >>>>> What I can't get to work is: I want to include the home directory, but >>>>> without >>>>> all the .whatever files. But I want SOME of them. >>>>> >>>>> E.g. I want: >>>>> >>>>> /etc/some/config_file >>>>> /etc/some/other/config_file >>>>> >>>>> And also all the "normal" files and folders in /home/my_user >>>>> >>>>> /home/my_user/folder_1 >>>>> /home/my_user/folder_2 >>>>> /home/my_user/foo >>>>> /home/my_user/bar >>>>> >>>>> and so on, but I don't want >>>>> >>>>> /home/my_user/.* >>>>> >>>>> but I DO want a defined set of dotfiles, e.g. >>>>> >>>>> /home/my_user/.ssh >>>>> /home/my_user/.local/share/foo >>>>> >>>>> I can't get this to work. I played around a lot with --include-globbing- >>>>> filelist, --exclude-globbing-filelist, --include and --exclude, but >>>>> either, I >>>>> get none of the .whatever files inside /home/my_user, or I get all of >>>>> them. >>>>> >>>>> Is it possible to do this? Thanks in advance for all help! >>>>> >>>>> Cheers, Tobias >> >> >> >>