On Sun, 19 Jan 2025 at 02:51, Default User <hunguponcont...@gmail.com> wrote:

> I may just delete everything on DRIVE2 overnight, and then try rsync
> with:
>
> time sudo rsync -aHSxvvv --human-readable --delete --numeric-ids --
> info=progress2,stats2,name2 --
> exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media
> /*","/lost+found"} /media/user/DRIVE1/ /media/user/DRIVE2/ ; date

Hi, a few quick suggestions:

Working with entire disks before you have figured out which options to use
is a big waste of time.

I would create a small test tree of dummy files and directories, and use
that tree to to test how rsync behaves with different options, when copying
that tree from one topdirectory to another.

You could use a file tree comparison tool to check for differences.

I would use something like:

  rsync -haxv -HAXSW --exclude=relative/thisfile ...
  --exclude=relative/thatfile --delete-excluded --delete /here/ /there

Note that my destination /there does NOT have a trailing separator (/),
this makes a difference to rsync, as you will observe if you test it on
a small test tree.

That command works for me from LUKS to LUKS and gives similar drive sizes,
although I do not have a lot of hardlinks.

Also, your use of --exclude looks completely wrong to me.

I do not see anything in 'man rsync' (version 3.2.7) that agrees with your
use of brace characters {}.

In fact the manpage says: "--exclude options take one rule/pattern each",
as I have shown above, which is not what you have.

The manual also says: "If you are having trouble debugging filter patterns,
then try specifying the -vv option. At this level of verbosity rsync will
show why each individual file is included or excluded."

Which is another reason why it will be better to work with a small test
tree, so that you can read that output for each file.

Reply via email to