1

As the title says, I'm looking for a way in Ubuntu/Linux to compress, encrypt, split, and upload data for backups across multiple clouds.

I have grabbed multiple cloud accounts for free ranging from 2GB to 50GB in size, and I'd like to backup my data encrypted to those clouds. Some of these accounts include Dropbox, box.net, Microsoft Skydrive, Google Drive, and others. All of my systems are running Ubuntu 13.04 Raring.

2 Answers 2

4

The *nix mentality is to use many small programs to do each of the necessary steps and to string them all together using pipes. So, rather than trying to find one tool that does everything you need, you should have a look at the various utilities that can do each of the necessary steps. So, time to read up on:

  1. split, part of the GNU core utils, great little tool for splitting large files into chunks.
  2. tar is used to make archives, to combine many small files into one big archive. It can also use various compression programs to create a compressed archive. For example, to create a compressed (gzipped) archive of all the files in the current directory, you would run:

    tar czf archive.tgz *
    
  3. GnuPG, the Gnu Privacy Guard is a simple to use tool that (among other things) allows you to encrypt/decrypt files.

  4. What you use to upload will depend on the service in question. Many (like Dropbox) will have their own tools. Others may offer ftp or ssh access. If you have ssh access, you should have a look at rsync which enables compression on the fly and incremental copying. Otherwise, check out scp.

As I said, the details will depend on the service in question but here is an example workflow:

tar czf archive.tgz *           ## compress and create single archive
gpg -c archive.tgz              ## encrypt
split -dn 5 archive.tgz archive ## splits into archive00 - archive04
scp archive0{0,1,2} [email protected]:/path/to/   ## copy archive00, archive01  
                                                  ## and archive 02 to service 1
scp archive0{3,4} [email protected]:/remote/path  ## copy the rest to service 2
1

If you are a Perl guy, do it with Perl. If I had to, and I probably will, I would do it with Bash. Chosen the interpreter you can just combine calls to split and rsync, iterate or plan updates with cron...

4
  • 1
    Not a programmer, however this fall I will be starting college where I'll be hopefully learning more on that.
    – Raansu
    Jul 2, 2013 at 8:52
  • Bad news is people are not taught that kind of things in college.
    – 174140
    Jul 2, 2013 at 9:00
  • Making my major Computer Sciences should help me, otherwise I'll be SOL.
    – Raansu
    Jul 2, 2013 at 9:05
  • Not necessarily. I did both the B. Comp. Sc. and half the M. Comp. Sc., and I learnt this kind of things in my first clerkjob.
    – 174140
    Jul 2, 2013 at 9:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .