How to delete a whole destination tree (inclusive the destination its-self) with rsync (daemon)?

Edvinas Valatka edacval at gmail.com
Sun Oct 31 10:23:29 MDT 2010


On Sun, 31 Oct 2010 16:52:05 +0100
Vahsen Beheer <beheer at vahsen.nl> wrote:

> 
> On 31-10-2010 16:39, Edvinas Valatka wrote:On Sun, 31 Oct 2010
> 03:15:37 +0100 Vahsen Beheer <beheer at vahsen.nl> wrote:
> 
> Hi!
> 
> I am backing up  (using --link-dest, hard links) to a NAS which has
> an 'rsync' daemon running. I do not have ssh access to this
> Storage-device. Part of my script needs to delete whole remote
> directory trees. This seems difficult with rsync.
> 
> 
> A nice trick is to make an empty source directory:
> 
> rsync -a --delete /tmp/empty-dir/
> remote-host::Backups/daily.20101030-0155
> 
> 
> This works perfect. It deletes the contents of destination. However,
> need it to also delete the destination directory its-self.
> 
> This seems something very easy, but after searching for many hours in
> the manual, FAQ, Web and forum did not reveal a solution.
> 
> 
> Is it possible to have rsync also delete the 'destination-directory' ?
> (Or do i need to work from its parent-directory of the destination -
> here the module itsself ? Or do something with filters?)
> 
> The next also does not work (it deletes all! from the Backups module):
> 
> rsync -a --exclude='/***' --include='/daily.20101030-0155/'
> --delete /tmp/empty-dir/ remote-host::Backups
> 
> 
> Any tips? Did anyone ever tried this? :)
> Thanks a lot in advance!
> Robert
> 
> 
> PS: I also looked into the --prune-empty-dirs option, without success
> though.
> 
> 
> 
> 
> 
> 
> 
> Or: rsync -ndivv -f 'P!p /daily.20101030-0155' --del  /tmp/empty_dir/
> remote-host::Backups/
> 
> Hi Edvinas :)
> 
> Thanks a lot for your response.
> 
> I tried all tree of your suggestions, but i get the message:
> 
> 1045: rsync -ndivv -f 'P!p daily.20101022-2209.5212' --del ~/empty/
> io::Backups opening tcp connection to io port 873
> sending daemon args: --server -vvnd --no-r "--log-format=%i"
> --delete-during . Backups/ filter rules are too modern for remote
> rsync. rsync error: protocol incompatibility (code 2)
> at /home/lapo/packaging/rsync-3.0.7-1/src/rsync-3.0.7/exclude.c(1211)
> [sender=3.0.7]
> 
> My rsync client is 3.0.7 but the daemon on my NAS-server has an older
> version: rsync 2.6.9 (the last one before 3.0).
> 
> Looking on the web for a 2.6.9 manpage (which i by the way was not
> able to find at the rsync website), i managed to find out it might be
> the 'p' (in the previous '-!pr') which causes the problem.
> 
> Any other hints?
> 
Hi Vansen :)
The 'p' in '-!pr' only needed, if directory
remote-host::Backups/daily.20101030-0155 is not empty. 

Workaround:
rsync -d --del /tmp/empty-dir/ remote-host::Backups/daily.20101030-0155/
rsync -ndv -f '-!r /daily.20101030-0155' --del /tmp/empty_dir/
remote-host::Backups/




More information about the rsync mailing list