The principle is the same with the CLI.
The copy command works on the storage (referenced by the configuration for any given .duplicacy/preferences file, rather than the repository (unless you specify -id; otherwise it assumes all repository IDs in the storage will be copied). Also, if you don’t specify -storage, it uses the first entry in the preferences if you have multiple.
Presumably you have all 3 repos pointing to the same Duplicacy backup storage?
In which case, you can use any one of these repos (cd'ing into it) to do the copy - perhaps the same one as where you run any prune or check jobs - it doesn’t matter (although it makes sense to pick 1 and stick with it coz your cache will fill up with all those maintenance operations).
You don’t quite mention why you’re unable to copy it?
But Duplicacy is flexible enough that you can copy between multiple storages - so if you have a <NAS>/Backup, <NAS>/HDD, and B2 storages, you can copy between them - so long as you initialised the second, third etc., using the ‘copy-compatible’ option using the add -copy command. You don’t have to involve rsync at all.
You can add the configuration for all storages to a ‘dummy’ repository on the NAS (either by way of init / add commands, or directly to a .duplicacy/preferences), just for the purposes of maintenance jobs, such as pruning, checking, and copying. e.g.:
[
{
"name": "local",
"id": "local-dummy",
"repository": "",
"storage": "/backup",
"encrypted": true,
"no_backup": true,
"no_restore": true,
"no_save_password": false,
"nobackup_file": "",
"filters": "",
"keys": null,
"exclude_by_attribute": false
},
{
"name": "hdd",
"id": "hdd-dummy",
"repository": "",
"storage": "/mnt/hdd",
"encrypted": true,
"no_backup": true,
"no_restore": true,
"no_save_password": false,
"nobackup_file": "",
"filters": "",
"keys": null,
"exclude_by_attribute": false
},
{
"name": "b2",
"id": "b2-dummy",
"repository": "",
"storage": "b2://bucket",
"encrypted": true,
"no_backup": true,
"no_restore": true,
"no_save_password": false,
"nobackup_file": "",
"filters": "",
"keys": null,
"exclude_by_attribute": false
},
]
Then script stuff like:
duplicacy -v -log prune -storage local -keep 30:365 -keep 7:90 -keep 1:14 -a
duplicacy -v -log check -storage local -a
duplicacy -v -log prune -storage hdd -keep 30:365 -keep 7:90 -keep 1:14 -a
duplicacy -v -log check -storage hdd -a
duplicacy -v -log prune -storage b2 -keep 30:365 -keep 7:90 -keep 1:14 -a
duplicacy -v -log check -storage b2 -a
duplicacy -v -log copy -from local -to hdd
duplicacy -v -log copy -from local -to b2
HTH?