"rclone check" --option to output list of differences between source and destination

rclone check source: destination -vv currently outputs a list of files noting which are OK and which are missing. This is great.

I can parse this list manually to create a list of differences (not OK files) which then allows further actions on that list.

Is it possible to add a flag to output only a list of differences? Something like the following

In source but not destination:
/folder1/file1
/folder1/file2
/folder2/folder2a/file3

In destination but not source:
/folder3/file4
/file5

Or, alternatively

In source but not destination:
file1
file2
file3

In destination but not source:
file4
file5

Kind regards

If you run it without -vv that is what you'll get

$ rclone check a b
2019/06/12 08:31:00 ERROR : file.txt: File not in Local file system at /tmp/b
2019/06/12 08:31:00 NOTICE: Local file system at /tmp/b: 1 files missing
2019/06/12 08:31:00 NOTICE: Local file system at /tmp/b: 1 differences found
2019/06/12 08:31:00 Failed to check with 2 errors: last error was: 1 differences found

@ncw As usual, apologies for my lack of clarity.

Yes. rclone check a b works as you describe, creating:

$ rclone check a b
2019/06/12 08:31:00 ERROR : file.txt: File not in Local file system at /tmp/b
2019/06/12 08:31:00 NOTICE: Local file system at /tmp/b: 1 files missing
2019/06/12 08:31:00 NOTICE: Local file system at /tmp/b: 1 differences found
2019/06/12 08:31:00 Failed to check with 2 errors: last error was: 1 differences found

I was trying to ask if it might be possible to output (with a flag) just the list of missing files without all the additional info. For example:

$ rclone check a b --list-only --one-way
/tmp/b/file.txt

The resultant list can be handy for further processing.

There isn't at the moment.

Having a flag is a good idea though.

What format would the output be in? Maybe something simple like

+ extra_file_in_dst
- file_missing_in_dst
* file_differs_in_dst
= file_same_in_dist

Where the = would only be output if you set -v or something like that.

Rclone would like to output these as it goes along in place of the log messages.

Output could be something simple with unique separators or labeling. The idea is to have raw file names that can be used in rclone sync/move/copy as needed.

I have a few simple scripts that process the current rclone check output into text files. Most using something like this to parse:

rclone check $1 $2 --size-only --one-way --no-traverse > check.log 2>&1
awk 'BEGIN { FS = ": " } /ERROR/ {print $2}' check.log > difflist.txt

Sometimes need to do a dedupe prior to check, as dupe folders can make rclone check fail.

Can you please make a new issue on github with a link to this issue and some ideas please? I think a --json flag would be pretty easy to implement too.

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