8

I'm using rsync3.1.0pre1 on Mac OS X 10.8.5, and am trying to rsync one folder to another. The destination is a ZFS volume mounted via SMB.

The problem I'm having is that files that start with underscore (e.g., '_filename.jpg') are not being successfully synced to the destination. I get the following error message:

rsync: mkstemp "/path/to/destination/._filename.jpg.NUgYJw" failed: Permission denied (13)

In this case, _filename.jpg does not make it to the destination.

I understand that rsync creates hidden, temporary files at the destination which are preceded with . and have a random file extension appended on the end. But the original filename starts with _, not ._, and I haven't asked rsync to copy extended attributes / resource forks over (unless it always does it).

The rsync command I'm using is:

rsync -av --exclude='.DS_Store' --exclude '.Trash' --exclude 'Thumbs.db' --exclude '._*' --delete /source/ /destination/

Has anyone found a way around this problem? Thank you!

1

2 Answers 2

1

From the original poster, question revision 3:

We found the answer (Dave Veffer did). The smb server was vetoing ._*. Simply had to remove that from smb.conf. I'm using SMBUp on OS X. smb.conf is located at /opt/local/etc/samba3/smb.conf

1
  • what exactly did you remove from the config?
    – florian
    Jun 7, 2023 at 8:55
0

A workaround might be using rsync's --inplace parameter, thereby avoiding the creation of temporary files. It comes with its own caveats, though:

--inplace
       This  option  changes how rsync transfers a file when its data needs to be updated: instead of the
       default method of creating a new copy of the file and moving it into place when  it  is  complete,
       rsync instead writes the updated data directly to the destination file.

              This has several effects:

              o      Hard  links  are  not  broken.   This means the new data will be visible through other hard
                     links to the destination file.  Moreover, attempts to copy differing source  files  onto  a
                     multiply-linked  destination  file  will result in a "tug of war" with the destination data
                     changing back and forth.

              o      In-use binaries cannot be updated (either the OS  will  prevent  this  from  happening,  or
                     binaries that attempt to swap-in their data will misbehave or crash).

              o      The  file’s data will be in an inconsistent state during the transfer and will be left that
                     way if the transfer is interrupted or if an update fails.

              o      A file that rsync cannot write to cannot be updated. While a  super  user  can  update  any
                     file,  a  normal  user  needs  to  be granted write permission for the open of the file for
                     writing to be successful.

              o      The efficiency of rsync’s delta-transfer algorithm may be  reduced  if  some  data  in  the
                     destination  file  is  overwritten before it can be copied to a position later in the file.
                     This does not apply if you use --backup, since rsync is smart enough to use the backup file
                     as the basis file for the transfer.

              WARNING:  you  should not use this option to update files that are being accessed by others, so be
              careful when choosing to use this for a copy.

              This option is useful for transferring large files with block-based changes or appended data,  and
              also  on  systems  that  are disk bound, not network bound.  It can also help keep a copy-on-write
              filesystem snapshot from diverging the entire contents of a file that only has minor changes.

              The option implies --partial (since an  interrupted  transfer  does  not  delete  the  file),  but
              conflicts  with  --partial-dir  and  --delay-updates.   Prior  to  rsync  2.6.4 --inplace was also
              incompatible with --compare-dest and --link-dest.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .