I’m using Duplicati to back up data stored in ZFS. ZFS has a snapshot feature where you can atomically save the state of the filesystem, then find it in /<pool>/.zfs/snapshot/<snapshot name>. Is there a way to tell Duplicati to back up a directory like /tank/.zfs/snapshot/2020-02-03, but rewrite the paths to /tank when checking for changes in the db and saving?
Also, Duplicati works impressively well under Mono. I was expecting to be fighting with it, but it was as easy as mono <duplicati path>/Duplicati.CommandLine.exe, so cheers!
others have expressed interest in adding ZFS snapshot support to Duplicati.
I actually don’t like the idea of ZFS integration because it would be pretty specific to ZFS, and if you really want a backup solution tailored to ZFS, you’re better off writing one from the ground up or sending snapshots.
Do you mean changes in the source file snapshot?
Not quite. Backup tools can have issues with locked files or files that are changed mid-backup. ZFS snapshots look like the full filesystem, just frozen at the time the snapshot was taken and in a different root directory.
You could definitely do some bind mount or chroot trickery, but this feature would just be a string replace on the file path before it’s uploaded or written to the DB. Now, that doesn’t mean it’s easy to add…
The only difference between using the full path will be that Duplicati will be able to re-use the metadata from the previous paths, such that it does not need to re-hash the file to see if it has any changes.
It would be fairly easy to add (I think) but it is a wormhole of options and trouble to allow users to define a list of rewrite rules. Do you have an idea for how you would like to specify the rewrite rule on the commandline?