I recently had a circuit trip while in the middle of a backup. My backup was seriously messed up. 51 broken files. My initial attempts at repairing things via the
database -> repair and
database -> recreate options did not work. Eventually I figured out I need to run the
purge-broken-files command and the
repair command with the
End result is that I only have 1 version of my job left. Fortunately, this isn’t a big deal for this particular job, but it’s not exactly a good result.
I’d really like to see a solid user interface built into the web ui for this workflow. But I’m not the best at UI, so I’ll leave that discussion for later. In the meantime, here are a few suggestions that would have helped me.
When this error is displayed:
Fatal error Duplicati.Library.Interface.UserInformationException: Found 51 files that are missing from the remote storage, please run repair at Duplicati.Library.Main.Operation.FilelistProcessor.VerifyRemoteList(BackendManager backend, Options options, LocalDatabase database, IBackendWriter log, String protectedfile) at Duplicati.Library.Main.Operation.BackupHandler.PreBackupVerify(BackendManager backend, String protectedfile) at Duplicati.Library.Main.Operation.BackupHandler.Run(String sources, IFilter filter)
Add information about running the
purge-broken-files commands. Running
repair alone doesn’t seem to work. Unless the command line
repair and the GUI
database -> repair are actually different commands? If so, that is really really confusing…
list-broken-files, include information about how much of the job is broken. Something like: “N of N files broken, N of N versions unrepairable, …” Basically, information that would let a person know how bad their backup job is messed up. In my case, I would have made a copy of the remote data if I had known how much data was going to be lost.
Change how the
purge-broken-files command works.
In the starting summary:
No broken filesets found in database, checking for missing remote files Listing remote folder ... Marked 51 remote files for deletion Found 23 broken filesets with 212383 affected files, purging files Removing 23 filesets where all file(s) are broken: <truncated>
Add something about how many total files there are, and how many total filesets there are. Basically like what I described for
Also, ask for confirmation before proceeding.
When using the
--allow-full-removal flag, ask for confirmation, and add a message about it fully removing entire versions/fieldsets/snapshots/etc.
Also, I should note that I didn’t know Disaster Recovery - Duplicati 2 User’s Manual existed until I just went to see if anything new had been added to the docs since the last time I looked. I really wish I had thought to use the
--dry-run flag… :\
I do think my ideas still have merit. Maybe the
--dry-run flag could be mentioned in a few places?
Finally, thanks to the devs for making Duplicati. I’ve been very happy to have a good tool like this that isn’t going to lock me into any proprietary formats.