mkay? so bash scripts would do triple encryption and compression and then upload it to whatever cloud storage?
cool, would you care to link to those bash scripts that does that? Because then I seriously wonder why people even bother with backup programs if you can just do this with bash.
I doubt bash will work.
Look at the below:
https://nodejs.org/api/crypto.html
https://cloud.google.com/nodejs/getting-started/using-cloud-storage
We used nodejs. It's sadly not free, I can give you our setup, I can request it to be open source, I doubt we ever going to sell it or something we will commercialize. Let me know if you interested and meet your requirements. I will motivate colleagues to say yes to upload it to github)
Functionality:
We list files and folder we want to backup in a configuration file(Some colleague made a GUI for it), it will create a listing per directory encrypted. It simple.
Nodejs take in 4 parameter or one setting.json
Input:
password(AES) - Stored in a brain cell
public key(RSA) - Stored on Machine Credential Manager
key file(Blowfish) - Stored on Server(internal)
configuration file - Stored on location machine
1. provider - Google, Amazon, Azure, Rackspace and newsgroup provider[Array]
2. setting - container API key[Array]
3. file list - regular expressions[can support an array per provider]
4. File Storage Type: IMPORTANT - example Cold storage or hot storage since retrieval will be costly.
5. For newsgroup you need to provide the starting point and will create a new starting point which needs to be stored. NB! WAS EXPERIMENTAL and we adding it to a smart contract(70% complete)
The program starts off with configuration file and creates a visualize tree:
Structure Container visualization tree:
listing.json
parentfolder1
-> Folder 1
-> music.mp3
-> listing.json
-> Folder 2
-> my s*-x tape.mp4(I trust my software)
-> listing.json
-> Folder 3
-> listing.json
each listing.json will have the SHA256 hash of the file, time stamps, parent listing, filename, guidid.
After doing that it will read all listing.json(decrypts it) and compare the sha256 hash codes.
It will create an instruction file with instructions to move, rename, replace, add or delete(It will just exclude it from backup list in future not hard delete it - can run cleanup).
For each instruction it will encrypt the file stream using keyfile, public key and lastly AES then it will upload it to blob container (Multiple of 32KB) and also generate optionally a par file of 10% compressed.(Multi threaded)
Result in the cloud is a flat structure within that container(One container per pc)
cguid.json(The listing)
fguid(The actual files)
pguid(Par files for repairing)
Its a once off setup and you have to run it manually. Speeds are great, We max out 50Mbps and 100Mbps line.
usage for backing up:
node backupapp ./settings
enter password
shows instructions and progress.
usage filetree:
node backupapp --list ./settings
enter password
usage for retrieval:
node backupapp --recover ./settings recovery-file-guid-list path to recovery(will create the treenode)
enter password
It's Moderate not simple. This is over kill for my sister, brother and dad just to run node and enter password. They said it's a waste and stupid. iDrive for them.
Office or business I don't trust anyone nor should you.