Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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.

share|improve this question

2 Answers 2

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} user@service1.com:/path/to/   ## copy archive00, archive01  
                                                  ## and archive 02 to service 1
scp archive0{3,4} user@service2.com:/remote/path  ## copy the rest to service 2
share|improve this answer

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...

share|improve this answer
Not a programmer, however this fall I will be starting college where I'll be hopefully learning more on that. –  Raansu Jul 2 '13 at 8:52
Bad news is people are not taught that kind of things in college. –  galegosimpatico Jul 2 '13 at 9:00
Making my major Computer Sciences should help me, otherwise I'll be SOL. –  Raansu Jul 2 '13 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. –  galegosimpatico Jul 2 '13 at 9:21

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.