Why does "rsync -av" always claim (incorrectly?) that it is
updating write protected directories?
Matthew Bostrom
mb at mb.mbostrom.us
Thu Mar 3 20:32:39 GMT 2005
Hi,
I usually run "rsync -av" so I can see all the files that have
been modified.
However, "rsync -av" always claims to be updating write
protected directories, even when they have not been changed. I do not
understand why.
Here is an example using rsync version 2.6.3 on FreeBSD 5.3.
I get similar results with rsync 2.6.0 on Gentoo Linux.
--------
$ mkdir dir0
$ touch dir0/file
$ rsync -av dir0 dir1
building file list ... done
created directory dir1
dir0/
dir0/file
sent 127 bytes received 40 bytes 334.00 bytes/sec
total size is 0 speedup is 0.00
--------
So I have created dir0 and rsynced it to inside of dir1. This
is all okay.
--------
$ rsync -av dir0 dir1
building file list ... done
sent 87 bytes received 20 bytes 214.00 bytes/sec
total size is 0 speedup is 0.00
--------
I have rsynced it again. rsync shows that no files have
changed. This is all okay.
--------
$ ls -l dir1
total 2
drwxr-xr-x 2 parke parke 512 Mar 3 12:06 dir0
$ chmod -w dir0
$ rsync -av dir0 dir1
building file list ... done
sent 87 bytes received 20 bytes 214.00 bytes/sec
total size is 0 speedup is 0.00
$ ls -l dir1
total 2
dr-xr-xr-x 2 parke parke 512 Mar 3 12:06 dir0
--------
We see that dir1/dir0 is writable. I "chmod -w dir0". Then I
"rsync -av" and rsync does not report that it has changed any files.
However, we can see that dir1/dir0 is no longer writable. So rsync
did change the permissions on dir1/dir0 (as it should have), it just
did not report that it changed the permissions. Why not?
--------
$ rsync -av dir0 dir1
building file list ... done
dir0/
sent 87 bytes received 20 bytes 214.00 bytes/sec
total size is 0 speedup is 0.00
--------
I rsync again. This time rsync claims that it is changing
"dir0/". However, as far as I can tell, rsync is NOT changing
anything. What am I missing here?
--------
$ rsync -av dir0 dir1
building file list ... done
dir0/
sent 87 bytes received 20 bytes 214.00 bytes/sec
total size is 0 speedup is 0.00
--------
We can repeat the "rsync -av" as many times as we want. rsync
will now always claim (incorrectly?) that it is modifying "dir0/".
Why?
--------
$ chmod u+w dir0
$ rsync -av dir0 dir1
building file list ... done
dir0/
sent 87 bytes received 20 bytes 214.00 bytes/sec
total size is 0 speedup is 0.00
--------
I make dir0 writable again. I rsync. rsync makes dir1/dir0
writable, as it should. rsync reports that it has changed "dir0/", as
it should. Everything is okay here.
--------
$ rsync -av dir0 dir1
building file list ... done
sent 87 bytes received 20 bytes 214.00 bytes/sec
total size is 0 speedup is 0.00
$ rsync -av dir0 dir1
building file list ... done
sent 87 bytes received 20 bytes 214.00 bytes/sec
total size is 0 speedup is 0.00
--------
Two more rsyncs with nothing to change and no changes
reported. This is okay.
So... to summarize: When I "rsync -av" write protected
directories, rsync always (and incorrectly?) claims that it is
changing those directories, even thought, as far as I can tell, rsync
is not changing the directories.
Is this a bug? Is there something I do not understand?
Thanks!
Matthew.
______________________________________________________________________
mb at mb.mbostrom.us
More information about the rsync
mailing list