deleting remote dirs I no longer want to backup
Christophe LYON
christophe.lyon at st.com
Fri Jan 20 18:30:00 GMT 2006
> There are several solutions, and which one is right for you depends on
> how new your rsync version is. For instance, a way that works with any
> rsync version is to copy from an empty dir to get rsync to do a
> deletion:
>
> mkdir empty-directory
> rsync -av --delete --include=/dirb --exclude='*' empty-directory/ /tmp
> rmdir empty-directory
>
> That tells rsync to only send dirb on the sending side (which is
> missing) and protects everything except dirb on the receiving side.
I am not a fan of this solution. Indeed, what I want to setup is a
system for copying a paraterable list of dirs (by some external config
file), and also a list of dirs to remotely delete.
The idea is to have a rsync script running in a crontab, unmodified,
while the end users control their lists of dirs.
> An alternate way to do this that also updates dira requires at least
> version 2.6.4: you can use a hide filter to make rsync transfer exactly
> what you want and avoid deleting anything extra (because you don't need
> to use --delete-excluded). Like this:
>
> rsync -av --del -f 'hide /dirb' --include='/dir[ab]' --exclude='/*' . /tmp
>
OK, I will try this one.
But...
My original command was:
rsync -aR --exclude=dirb --exclude-deleted dira dirb /tmp
I would like to be able to use the -R switch, as the list of dirs will
need to be of the form: */release-1.0, and I want that the '*' part be
kept on the remote site.
Can you explain me what is wrong with this specific command?
I thought that mentioning dirb in the list of copied dirs would make the
--exclude switch work (at least taken into account).
With --exclude=dirb/** I managed to get a remote empty dirb, what is
still missing is removing dirb itself.
Thanks,
Christophe.
More information about the rsync
mailing list