Rclone sync, but in three steps (check, show me what it wants to to, do it)

What is the problem you are having with rclone?

I'm using rclone sync to upload to an FTP server. However due to circumstances out of my control, other people might modify things on this FTP server, too. To work around this, I use two syncs, first I sync the content to my local file system, do my work, then sync again to upload it. However I would like a "sanity check" in this second upload sync. More specifically I would like to do something like this (imaginary commands/flags):

rclone sync --prepare=output.txt --yada yada yada # only checks, does not modify any files
cat output.txt // shows what it wants to do
rclone sync --apply=output.txt # no further checks, only does the changes it showed earlier

I want this to make sure I don't accidentally undo someone's modifications with my upload sync. I know about rclone check, but I don't know how to them make rclone apply those check results.

Run the command 'rclone version' and share the full output of the command.

rclone v1.62.2
- os/version: ubuntu 22.04 (64 bit)
- os/kernel: 5.19.0-46-generic (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.20.2
- go/linking: static
- go/tags: none

Which cloud storage system are you using? (eg Google Drive)

FTP

The rclone config contents with secrets removed.

n/a - using environment variables:

export RCLONE_FTP_HOST=XXX
export RCLONE_FTP_USER=XXX
export RCLONE_FTP_PASS=XXX

instead of sync you could use:

rclone copy src dst --ignore-existing

This would only copy to dst your new files.

You can always check before what rclone is going to do by adding --dry-run -vv flags.

Thank you for your response. I know about rclone copy, however it won't remove files that I deleted from the remote.
I already use --dry-run, but this makes it so rclone has to do the entire checking process twice, which takes quite a while on a slow but very large in size FTP server. Additionally there is the (maybe small?) chance of someone modifying files on the server between my dry-run sync and my actual sync.

but it means that there is no really good solution if files on remote can change at any time. You can do all your checks and preparation and start sync when exactly at the same time somebody else is modifying remote as well.

That is true. But I was hoping there would be a way to narrow down the time from "two 5 minute long sync jobs" to "one 5 minute long check job and then a few seconds at most upload".

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