Hello, According to rsync documentation: --delete This tells rsync to delete any files on the receiving side that arenât on the sending side. Files that are excluded from transfer are excluded from being deleted unless you use --delete-excluded. If I run rsync in daemon mode, and use a configuration file, files excluded in the configuration file are correctly excluded from transfer, but they ARE DELETED on receiving side. Example: I have these files: # ls -1 src/ copy.no copy.yes # ls -1 dest/ copy.no copy.yes #cat rsyncd.conf pid file = /var/run/rsyncd.pid uid=nobody gid=nobody use chroot=false [files] path=src exclude=- *.no + *.yes - * server command line: #rsync --daemon --no-detach --config=./rsyncd.conf client command line (1): #rsync -n -avz --delete 127.0.0.1::files dest client command line (2) - works as expected: #rsync -n -avz --delete --exclude='*.no' 127.0.0.1::files dest When I run (1), I have the following output: # rsync -n -avz --delete 127.0.0.1::files dest receiving file list ... done deleting copy.no wrote 78 bytes read 120 bytes 396.00 bytes/sec total size is 0 speedup is 0.00 When I run (2), I get this: # rsync -n -avz --delete --exclude='*.no' 127.0.0.1::files dest receiving file list ... done wrote 86 bytes read 120 bytes 412.00 bytes/sec total size is 0 speedup is 0.00 Conclusion: Probably when files are excluded in a configuration, these are really not counted as excluded files for the --delete option, so even if they are excluded in configuration file, they will be deleted if --delete is used. Versions affected: at least 2.5.7 and 2.6.2 For being able to better test this bug, you can download this tar.gz file: http://nevalabs.org/tmp/rsync-bug.tar.gz This problem was discovered using ssh with a remote host, but I simplified the example to make it easier to reproduce the problem. If any additional info is needed, please contact me. Thanks, Claudio Neves ------- Claudio Neves - System Administrator Next Internet Solutions - Sao Paulo/Brazil Phone: +55-11-5579-6966
Files excluded in the daemon config file do not exist as far as the client is concerned. Please refer to the rsyncd.conf manpage: "Because this exclude list is not passed to the client it only applies on the server: that is, it excludes files received by a client when receiving from a server and files deleted on a server when sending to a server, but it doesn't exclude files from being deleted on a client when receiving from a server." If there are files you wish to exclude from deletion on the client, you must specify them via the command-line.