setting a custom directory for restore

Alex JOST     Jul 28 2:35PM 2017 CLI

I'm new to duplicacy and having a hard time wrapping my head around the restore procedure. As far as I understood the only way to restore files is to either use 'duplicacy restore -overwrite' and overwrite every single file of that snapshot in place, or I can cat single files into a custom directory. The last method requires that I know the absolute path of the files I want to restore.

Is there no way to mount a snapshot or restore it to a custom directory so I can browse and handpick the files/directories I want to restore?


gchen    Jul 28 9:13PM 2017

You can restore to a different directory as long as you use the same repository id.

cd path\to\restore
duplicacy init original_repository_id storage_url
duplicacy restore -r 1 files_to_be_restored

This works even on a different computer. All Duplicacy cares is the repository id -- repositories with the same id act like the same repository no matter where they are.


Alex JOST    Jul 29 5:40AM 2017

Thanks for the fast reply, I will try that out as soon as I have time.

May I still suggest adding a way to mount a snapshot. It makes skimming through the snapshot easy and doesn't require to have disk space left on the device.


Alex JOST    Jul 29 11:21AM 2017

I made some snapshots of multiple repositories of a system. When restoring a snapshot (to a diferrent directory) I compared the content and found a lot of files missing. I'm trying to list every step, hoping you spot some obvious mistake.

root@m1:/etc# cat .duplicacy/preferences

[
    {
        "name": "default",
        "id": "m1-etc",
        "storage": "sftp://user@backend/duplicacy",
        "encrypted": true,
        "no_backup": false,
        "no_restore": false,
        "no_save_password": false,
        "keys": null
    }
]

root@m1:/etc# l .duplicacy/

total 12K
drwxr-----. 3 root root 4.0K Jul 29 12:18 cache
-rw-------. 1 root root  408 Jul 29 12:17 known_hosts
-rw-r-----. 1 root root  274 Jul 29 12:17 preferences

root@m1:/etc# mkdir /tmp/restore && cd /tmp/restore

root@m1:/tmp/restore# duplicacy init -e m1-etc sftp://user@backend/duplicacy

The storage 'sftp://user@backend/duplicacy' has already been initialized
Compression level: 100
Average chunk size: 4194304
Maximum chunk size: 16777216
Minimum chunk size: 1048576
Chunk seed: f6c3a8afaf216db6deae075b16017688b83b68729c4ddf9c7629c82671eb8ae4
/tmp/restore will be backed up to sftp://user@backend/duplicacy with id m1-etc

root@m1:/tmp/restore# duplicacy list

Storage set to sftp://user@backend/duplicacy
Snapshot m1-etc revision 1 created at 2017-07-29 12:18 -hash
Snapshot m1-etc revision 2 created at 2017-07-29 14:30 
Snapshot m1-etc revision 3 created at 2017-07-29 16:30

root@esus:/tmp/restore# duplicacy restore -r 3

Storage set to sftp://user@backend/duplicacy/duplicacy
Restoring /tmp/restore to revision 3
Downloaded sysconfig/run-parts (0)
Downloaded .updated (163)
Downloaded motd (0)
Downloaded environment (0)
Downloaded exports (0)
[...]
Restored /tmp/restore to revision 3
Total running time: 00:00:02

root@m1:/tmp/restore# diff -r ./ /etc/

Only in /etc/: binfmt.d
Only in /etc/: chkconfig.d
Only in /etc/: cron.monthly
Only in /etc/: cron.weekly
Only in /etc/dbus-1: session.d
Only in /etc/: dnsmasq.d
Only in /etc/firewalld: icmptypes
Only in /etc/firewalld: services
[...]

PS: This does happen on multiple systems!


gchen    Jul 29 12:37PM 2017

Can you run duplicacy list -r 3 --files to see if those files are in the backup?


Alex JOST    Jul 29 1:20PM 2017

I think I know now what's going on. Looks like duplicacy omits directories when they are empty. Sorry for not realizing that earlier, but that's a ratter weird behavior.


gchen    Jul 29 7:10PM 2017

Maybe that was a bad decision. A few others complained about that in the past. I'll fix it next week.


Alex JOST    Jul 30 12:31PM 2017

Glad to hear that. Thanks!


gchen    Aug 5 10:56AM 2017

The fix to restore empty directories has been checked in to the github branch. It will get into version 2.0.7.