Rclone copy overwriting dest files that are newer - why?

Hi all, I've got an rclone script which I used to copy from my Mac to my NAS. It's supposed to only copy/update files which either don't exist in the destination, or where the last-mod time of the source is newer than that of the dest - i.e., only copy files that have changed on the source. For some reason, though, when I run it, it's copying older files from the source to the dest.

Source Dir looks like this:

-rw-r--r--   1 user  staff    823088785 22 Feb 13:55 Plant Heritage Bamboo Talk.mp4
-rw-r--r--   1 user  staff   7209295362 18 Feb 19:50 Plant Heritage Butterflies.mp4
-rw-r--r--   1 user  staff    471012450 26 Mar 13:43 Plant Heritage Cherry Blossom.mp4
-rw-r--r--   1 user  staff  13730023046 18 Mar 21:22 Plant Heritage Crocus Talk.mp4

Dest Dir looks like this:

-rwxrwxrwx@ 1 user  staff   823088785 22 Feb 13:55 Plant Heritage Bamboo Talk.mp4
-rwxrwxrwx@ 1 user  staff   299863059  6 May 19:35 Plant Heritage Butterflies.mp4
-rwxrwxrwx@ 1 user  staff   471012450 26 Mar 13:43 Plant Heritage Cherry Blossom.mp4
-rwxrwxrwx@ 1 user  staff   516153328  6 May 15:41 Plant Heritage Crocus Talk.mp4

By my reckoning, none of these files should copy, because two have identical dates to the destination, and two have more recent dates on the destination.

The Rclone command I'm running:

rclone copy /users/user/LocalCloud/Media syno:/cloud/Media -v --dry-run --transfers=8 --stats=0

The output is:

2021/05/09 12:53:18 NOTICE: Horticultural Talks/Plant Heritage Talks/Plant Heritage Butterflies.mp4: Skipped copy as --dry-run is set (size 6.714G)
2021/05/09 12:53:18 NOTICE: Horticultural Talks/Plant Heritage Talks/Plant Heritage Crocus Talk.mp4: Skipped copy as --dry-run is set (size 12.787G)

I'm guessing that the '(size 12.787G)' in the log is an indicator that the file would have been copied because the size had changed - regardless of the mod-date?

What I really want is the file to copy either:

  1. If the file-mod time in the source is newer than the destination, regardless of size
  2. If the file-mod time of source and dest match, and the source file size is different.

Is that possible?

I'm using Rclone v1.55 on an M1 Macbook Pro.

Answering my own question, looks like I can just use --ignore-size and have everything done on last-mod time. Any way to do #2 in my post above?

Yes.

Run with -vv and rclone will tell you exactly why it wants to copy each file.

That is the --update flag

Funnily enough that is exactly what --update does!

If an existing destination file has a modification time equal (within the computed modify window precision) to the source file's, it will be updated if the sizes are different. If --checksum is set then rclone will update the destination if the checksums differ too.

Perfect - thanks!

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.