Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

rsync error: failed to set times on "/foo/bar": Operation not permitted

I'm getting a confusing error from rsync and the initial things I'm finding from web searches (as well as all the usual chmod'ing) are not solving it:

rsync: failed to set times on "/foo/bar": Operation not permitted (1)
rsync error: some files could not be transferred (code 23) 
  at /SourceCache/rsync/rsync-35.2/rsync/main.c(992) [sender=2.6.9]

It seems to be working despite that error, but it would be nice to get rid of that.

like image 545
dreeves Avatar asked Mar 20 '09 21:03

dreeves


7 Answers

If /foo/bar is on NFS (or possibly some FUSE filesystem), that might be the problem.

Either way, adding -O / --omit-dir-times to your command line will avoid it trying to set modification times on directories.

like image 111
Jon Bright Avatar answered Oct 05 '22 10:10

Jon Bright


The issue is probably due to /foo/bar not being owned by the writing process on a remote darwin (OS X) system. A solution to the issue is to set adequate owner on the remote site.

Since this answer has been voted, and therefore has been hopefully useful to someone, I'm extending it to make it clearer.

The reason why this happens is that rsync is probably trying to set an arbitrary modification time (mtime) when copying files.

In order to do this darwin's system utime() function requires that the writing process effective uid is either the same as the file uid or super user's one, see opengroup utime's page. Check this discussion on rsync mailing list as reference.

like image 38
anddam Avatar answered Oct 05 '22 09:10

anddam


As @racl101 has commented on an answer, this problem might be related to the folder owner. The rsync command should be done by the same user as the folder owner's one. If it's not the same, you can change it.

chown -R userCorrect /remote/path/to/foo/bar
like image 36
Lud Akell Avatar answered Oct 05 '22 10:10

Lud Akell


I had the same problem. For me the solution is to delete the remote file and let rsync create again.

like image 20
shintaroid Avatar answered Oct 05 '22 10:10

shintaroid


The problem in my case was that the "receiver mountpoint" was incorrectly mounted. It was in read-only mode (for some extrange reason). It looked like rsync was copying the files, but it was not. I checked my fstab file and changed mount options to default, re-mount file system and execute rsync again. All fine then.

like image 22
ripah Avatar answered Oct 05 '22 09:10

ripah


I've seen that problem when I'm writing to a filesystem which doesn't (properly) handle times -- I think SMB shares or FAT or something.

What is your target filesystem?

like image 31
David Wolever Avatar answered Oct 05 '22 11:10

David Wolever


I came across this problem as well and the issue I was having was a permissions issue with the root folder that contained the files I was trying to send over. I don't care about that root folder being included with rsync I just care what's in it. The error was coming from my command where I need to specify an additional / at the end. If you do not have that trailing slash rsync will attempt to set times the folder.

Example:

This will attempt to set times on html

rsync /var/www/html/ [email protected]:html

This will not

rsync /var/www/html/ [email protected]:html/
like image 1
Cesar Bielich Avatar answered Oct 05 '22 11:10

Cesar Bielich