rsync ext2/ext3 to samba/cifs

The problem seems to be the default method used by rsync to determine which files need to be considered for copying is not appropriate for use between linux and cifs/smb mounted file systems.

My setup is a Maxtor Central Axis 1TB using CIFS mounted to a linux file system using a standard mount -t cifs …. command.

The initial rsync run identified my thirty one thousand RAW and JPG files and took an age to get through them all… as expected. I realized something was terribly wrong when I kicked off a test run immediately after the first completed as rsync was copying one file at a time regardless of if the file had changed or not.

I started down the path of having rsync perform a checksum on each file to determine if it should be copied or not; however, the checksum process is computationally expesive and was taking more time than just copying the file. Needless to say I didn’t even get all the way through assessing which files needed to be copied. Next I considered looking at the modification times only but for some reason opening the modify window (ex. –modify-window=10) did not have any affect. I ended up just looking at the size of each file.

rsync –size-only -trvvhP –no-whole-file /src_directory/* /cifs_mounted_remote_directory/

I suspect that there may be CIFS mounting options that would lend themselves to backups based on modification time; however, the types of files I’m concerned with are in a large binary format. Any modification of the file under normal use will produce a file of a different size (in 99% of cases). The monthly full copy will get the outliers.

Leave a Reply