Zotero
The only way to do it for free is to sync the metadata with Zotero servers and sync the files with another software. I use syncthing.
Set up sync
- Create a Zotero account
- Open Zotero
- Go to Settings > Sync > Login > Set up syncing
- Fill the username and password
- Login
- Uncheck:
- Sync attachment files in My Library using ...
- Sync attachment files in group librearies using Zotero storage
- Close settings
- Top right corner, there is a button to sync. Press it.
- Wait for sync to finish.
Backup
Copy all of your files from ~/Zotero/storage/
Restore
Copy all of your files to ~/Zotero/storage/