How to use patterns in the restore command

I have a 7 GB file I need to restore and since the web-ui keeps stopping the download whenever the lockscreen goes on (I’m not leaving the restore page), I am forced to use the CLI. But duplicacy just keeps giving me

Incorrect Usage.

   duplicacy restore - Restore the repository to a previously saved snapshot

   duplicacy restore [command options] [--] [pattern] ...

   -r <revision>		            		    the revision number of the snapshot (required)
   -hash 			         	             	detect file differences by hash (rather than size and timestamp)
   -overwrite 				            	    overwrite existing files in the repository
   -delete 					                    delete files not in the snapshot
   -ignore-owner 				                do not set the original uid/gid on restored files
   -stats 					                    show statistics during and after restore
   -threads <n>				   	                number of downloading threads
   -limit-rate <kB/s>				            the maximum download rate (in kilobytes/sec)
   -storage <storage name> 			            restore from the specified storage instead of the default one
   -key <private key> 				            the RSA private key to decrypt file chunks
   -persist 					                continue processing despite chunk errors or existing files (without -overwrite), reporting any affected files
   -key-passphrase <private key passphrase> 	the passphrase to decrypt the RSA private key

Since the mistake is in the pattern and it doesn’t explain anything about the requirements for the pattern, this is not very helpful.

All I’m trying to do is to tell it to restore one specific file, whose name I know but not its exact path. Here are some of the patterns I tried:

./duplicacy restore -ignore-owner -r 2 -threads 4 -stats  +*/gogo externals/international assembly 1 dec 2015 part1-1080p.mp4
./duplicacy restore -ignore-owner -r 2 -threads 4 -stats -- i:.*/gogo externals/international assembly 1 dec 2015 part1-1080p.mp4 e:.*
./duplicacy restore -r 2 -ignore-owner -threads 4 -stats -- +*/gogo* -*
./duplicacy restore -ignore-owner -r 2 -threads 4 -stats -- *gogo externals/international assembly 1 dec 2015 part1-1080p.mp4

I’ve tried at least two dozen variants and it’s extremely cumbersome because every single time, it asks me for the ssh password and the storage password.

Could someone advise me (and others who are trying to perform this simple operation) how to use the patterns correctly?

The pattern must be enclosed in double quotes, like:

./duplicacy restore -ignore-owner -r 2 -threads 4 -stats -- "*gogo externals/international assembly 1 dec 2015 part1-1080p.mp4"

You don’t need to use the CLI. The web GUI supports restoring in the background since 1.5.3: Duplicacy Web Edition 1.6.3 releases

Thanks, that worked. Where in the documentation did I miss that information?

I realize that I am still running version 1.5.0. For some reason I believed that the web-UI automatically updates itself, but since that doesn’t seem to be the case, how do I do it manually?

I searched the forum but couldn’t find any instructions. (except for Upgrade instructions for Linux, which doesn’t help me because I didn’t install the web-ui into /opt/duplicacy as is assumed in those instructions, and I have no idea where I installed it. Do I really need to find out?

I suppose an update button in the UI is not feasible? Or maybe upgrade instructions in the web-ui itself?

1 Like

For anyone struggling with the same problem: I did find out where I installed my duplicacy-web using which duplicacy-web. (Note that duplicacy-web is what I called my binary (or rather, the link to it), so you may need to use a different term, depending on what your binary is called.)

I then did

sudo mv duplicacy_web_linux_x64_1.6.3 /usr/bin/
sudo chmod 700 /usr/bin/duplicacy_web_linux_x64_1.6.3
sudo ln -s -f /usr/bin/duplicacy_web_linux_x64_1.6.3 /usr/bin/duplicacy-web

If you’re running dupicacy-web as a service, you’ll obviously need to restart the service (sudo systemctl start duplicacy) and maybe it is better to stop it before starting the upgrade, I don’t know.