What is the problem you are having with rclone?
I store a bunch of files at two different cloud providers. I'm migrating away from provider 1 to provider 3, but keeping provider 2. I synced from provider 1 to provider 3. Since I'm cancelling my subscription with provider 1, I wanted to sanity check that a sync of provider 2 to provider 3 changes nothing.
The sanity check did not hold.
❯ rclone sync -P --bwlimit 2M --max-delete 0 --transfers 1 crypt-target-1: crypt-target-2:
Enter configuration password:
password:
Transferred: 0 / 0 Bytes, -, 0 Bytes/s, ETA -
Checks: 859 / 859, 100%
Elapsed time: 11.0s
❯ rclone sync -P --bwlimit 2M --max-delete 0 --transfers 1 crypt-target-1: crypt-target-3:
Enter configuration password:
password:
Transferred: 0 / 0 Bytes, -, 0 Bytes/s, ETA -
Checks: 859 / 859, 100%
Elapsed time: 11.9s
❯ rclone sync -P --bwlimit 2M --max-delete 0 --transfers 1 crypt-target-2: crypt-target-3:
Enter configuration password:
password:
Transferred: 288.094k / 3.292 GBytes, 0%, 331.445 kBytes/s, ETA 2h53m34s
Checks: 44 / 87, 51%
Transferred: 0 / 3, 0%
Elapsed time: 5.5s
Checking:
* [some file name]: checking
* [some file name]: checking
* [some file name]: checking
* [some file name]: checking
* [some file name]: checking
* [some file name]: checking
* [some file name]: checking
* [some file name]: checking
Transferring:
* [some file name]: 1% /23.718M, 0/s, -^C
❯ rclone sync -P --bwlimit 2M --max-delete 0 --transfers 1 crypt-target-1: crypt-target-3:
Enter configuration password:
password:
Transferred: 0 / 0 Bytes, -, 0 Bytes/s, ETA -
Checks: 859 / 859, 100%
Elapsed time: 11.7s
❯ rclone sync -P --bwlimit 2M --max-delete 0 --transfers 1 crypt-target-1: crypt-target-2:
Enter configuration password:
password:
Transferred: 0 / 0 Bytes, -, 0 Bytes/s, ETA -
Checks: 859 / 859, 100%
Elapsed time: 11.2s
If provider 1 is in sync with 2 and 3, then how come provider 2 is not in sync with 3?
Run the command 'rclone version' and share the full output of the command.
rclone v1.53.3-DEV
- os/arch: linux/amd64
- go version: go1.18
This was the latest one that's available on Ubuntu 22.04 LTS.
Which cloud storage system are you using? (eg Google Drive)
-
crypt-target-1
iswebdav
wrapped incrypt
-
crypt-target-2
iss3
wrapped incrypt
-
crypt-target-3
isdrive
wrapped incrypt
These are not the actual names of the targets. I've renamed them to something universal so it's easier to understand the situation and to keep personal info off the public internet.
The command you were trying to run (eg rclone copy /tmp remote:tmp
)
As above:
rclone sync -P --bwlimit 2M --max-delete 0 --transfers 1 crypt-target-2: crypt-target-3:
The rclone config contents with secrets removed.
Each crypt target references a webdav/s3/drive target. This is my config with my personal info redacted, the targets renamed, and unrelated targets removed:
[webdav-target-1]
type = webdav
url = https://[redacted]
vendor = other
user = [redacted]
pass = [redacted]
[crypt-target-1]
type = crypt
remote = webdav-target-1:[redacted]
filename_encryption = standard
directory_name_encryption = true
password = [redacted]
password2 = [redacted]
[s3-target-2]
type = s3
provider = Other
env_auth = false
access_key_id = [redacted]
secret_access_key = [redacted]
endpoint = [redacted]
location_constraint = de-fra-1
acl = private
[crypt-target-2]
type = crypt
remote = s3-target-2:[redacted]
filename_encryption = standard
directory_name_encryption = true
password = [redacted]
password2 = [redacted]
[drive-target-3]
type = drive
client_id = [redacted]
client_secret = [redacted]
scope = drive.file
token = [redacted]
[crypt-target-3]
type = crypt
remote = drive-target-3:[redacted]
directory_name_encryption = true
password = [redacted]
password2 = [redacted]
A log from the command with the -vv
flag
❯ rclone sync -vv -P --bwlimit 2M --max-delete 0 --transfers 1 crypt-target-2: crypt-target-3:
2023/01/02 22:50:06 DEBUG : rclone: Version "v1.53.3-DEV" starting with parameters ["rclone" "sync" "-vv" "-P" "--bwlimit" "2M" "--max-delete" "0" "--transfers" "1" "crypt-target-2:" "crypt-target-3:"]
Enter configuration password:
password:
2023/01/02 22:50:09 DEBUG : Using config file from "/home/myusername/.config/rclone/rclone.conf"
2023/01/02 22:50:09 INFO : Starting bandwidth limiter at 2MBytes/s
2023/01/02 22:50:09 DEBUG : Creating backend with remote "crypt-target-2:"
2023/01/02 22:50:09 DEBUG : Creating backend with remote "s3-target-2:[redacted]"
2023/01/02 22:50:09 DEBUG : Creating backend with remote "crypt-target-3:"
2023/01/02 22:50:09 DEBUG : Creating backend with remote "drive-target-3:[redacted]"
2023/01/02 22:50:09 DEBUG : Google drive root 'Vault': root_folder_id = "root" - save this in the config to speed up startup
2023-01-02 22:50:10 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:10 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:10 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:10 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:10 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:10 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:10 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:10 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:10 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:10 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:10 DEBUG : [redacted]: Modification times differ by 4m51.2824767s: 2022-06-06 13:57:03.7175233 +0200 CEST, 2022-06-06 12:01:55 +0000 UTC
2023-01-02 22:50:10 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:10 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:10 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:10 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:10 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:10 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:10 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:10 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:11 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:11 DEBUG : [redacted]: Modification times differ by 5m43.7618903s: 2022-10-20 20:38:43.2381097 +0200 CEST, 2022-10-20 18:44:27 +0000 UTC
2023-01-02 22:50:11 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:11 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:11 DEBUG : [redacted]: Modification times differ by 39m9.0036905s: 2022-10-20 18:17:11.9963095 +0200 CEST, 2022-10-20 16:56:21 +0000 UTC
2023-01-02 22:50:11 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:11 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:11 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:11 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:11 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:11 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:11 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:11 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:11 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:11 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:11 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:11 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:11 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:11 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:11 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:11 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:11 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:11 DEBUG : [redacted]: Size and modification time the same (differ by 0s, within tolerance 1ms)
2023-01-02 22:50:11 DEBUG : [redacted]: Unchanged skipping
2023-01-02 22:50:11 DEBUG : [redacted]: Sending chunk 0 length 8388608
Transferred: 0 / 3.292 GBytes, 0%, 0 Bytes/s, ETA -
Checks: 23 / 87, 26%
Transferred: 0 / 3, 0%
Elapsed time: 5.9s
Checking:
* [some file name]: checking
* [some file name]: checking
* [some file name]: checking
* [some file name]: checking
* [some file name]: checking
* [some file name]: checking
* [some file name]: checking
* [some file name]: checking
Transferring:
* [some file name]: 0% /623.693M, 0/s, -^C
It looks like the the modification times of some files differ by at least a few minutes. This feels more significant and random than a bit of clock drift or loss of timestamp precision. What could be the actual reason?
I really assumed that if the files on provider 1 and 2 were equal, and the files on provider 1 and 3 were equal, then the files on provider 2 and 3 would also be equal (aka the transitive property).