Encrypted backups using 'duplicity' on Windows via WSL

> Coding, hacking, computer graphics, game dev, and such...
User avatar
fips
Site Admin
Posts: 170
Joined: Wed Nov 12, 2008 9:49 pm
Location: Prague
Contact:

Encrypted backups using 'duplicity' on Windows via WSL

Post by fips »

Luckily, the Windows Subsystem for Linux (WSL) has made it really simple to use all kinds of Linux command-line tools on Windows. One of such useful tools is an open-source backup package called duplicity. It's robust, feature-rich and can be deployed and used in just a few steps, like shown below:

Given the WSL is already installed, then by typing 'bash' in the Windows Command Prompt (cmd.exe), one can enter the Linux shell, like so:

Code: Select all

C:\Users\john> bash
john@john-pc:/mnt/c/Users/john$
From there, 'duplicity' can be installed, like so:

Code: Select all

sudo apt-get install duplicity
And that's basically it, given the drives are already mounted under '/mnt/', one can backup e.g. 'c:\Users\john\data\' into 'd:\backup_john_data\', simply by typing:

Code: Select all

duplicity /mnt/c/Users/john/data/ file:///mnt/d/backup_john_data/
Which prompts for a passphrase and outputs something like this:

Code: Select all

Local and Remote metadata are synchronized, no sync needed.
Last full backup date: none
GnuPG passphrase:
Retype passphrase to confirm:
No signatures found, switching to full backup.
--------------[ Backup Statistics ]--------------
StartTime 1625233987.10 (Fri Jul  2 15:53:07 2021)
EndTime 1625233987.45 (Fri Jul  2 15:53:07 2021)
ElapsedTime 0.35 (0.35 seconds)
SourceFiles 4
SourceFileSize 8566184 (8.17 MB)
NewFiles 4
NewFileSize 8566184 (8.17 MB)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 4
RawDeltaSize 8565672 (8.17 MB)
TotalDestinationSizeChange 8587856 (8.19 MB)
Errors 0
-------------------------------------------------
Similarly, restoring the backup from 'c:\backup_john_data\' back to let's say 'c:\Users\john\data_restored\', is just a matter of:

Code: Select all

duplicity restore file:///mnt/d/backup_john_data/ /mnt/c/Users/john/data_restored/
Which verifies the passphrase and outputs:

Code: Select all

Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Fri Jul  2 15:53:00 2021
GnuPG passphrase:
Tip:
The '--volsize' parameter can be used to change the size of the produced backup file chunks (the default value is 25Mb, which might be rather small by modern standards, and produce a lot of files in the backup directory).

Code: Select all

duplicity --volsize 700 /mnt/c/Users/john/data/ file:///mnt/d/backup_john_data/