I am looking for a simple backup solution for backing up my Linux server (RHEL5-x86_64).

  1. I must be automatic (run at night, so I cannot baby-sit it)

  2. It must be run on a live system (or semi-live - I expect performance to drop while backing up)

  3. It must be able to send the back up to either local disk, FTP or other mountable drives.

  4. Must support rotating backups so it does not eat up all available space.

A big bonus would be support for daily differential backup, with weekly full backup.

So far I have looked at dd, tar and Amanda.

Amanda seems unnecessary complicated and married to tapes (with virtual tapes on hard-disk - wtf?). dd and tar are nice and simple, but does not support easy differential backup and requires a fair bit of custom scripting to work smoothly.

Any constructive suggestions are very welcome!

edit: Just tried tar'ing / and the disk-files of the virtual machines i'm running gives the warning "file changed as we read it" - is that a problem?

edit2: @cjc - yes, the scenario is that the server catches fire. After setting up a new server (not time critical in this case) the backup should be transfered from an offsite FTP server and the machine should run as before the fire (or whatever went wrong). I would prefer not to have to install a new OS. I imagined using a Live Linux CD, install grub and copy backup to HDD as in this guide: http://ubuntuforums.org/showthread.php?t=35087

  • One early question you need to answer: what's your recovery path from the backups? Is your scenario that your server catches fire and you need to quickly restore everything via an image? Can you afford downtime, where you install a basic Linux instance and go from there? – cjc Mar 26 '12 at 13:24
  • 1
    Look a Bacula. It's fairly popular but has a learning curve. – Bart Silverstrim Mar 26 '12 at 13:29

Have a look at rsync and rsnapshot. Rsync has many options and you can easily integrate it into a script or/and add it to your crontab (this is a bit of DIY).

For your needs however I would use rnsapshot (it uses rsync) it can normally do everything you want.

rsnapshot is an rsync-based filesystem snapshot utility. It can take incremental backups of local and remote filesystems for any number of machines. rsnapshot makes extensive use of hard links, so disk space is only used when absolutely necessary.

Using hard links, rsnapshot creates the illusion of multiple full backups, while only taking up the space of one full backup plus differences. When coupled with ssh, it is possible to take snapshots of remote filesystems as well.

Consequently, rsnapshot saves much more disk space. The amount of space required is roughly the size of one full backup, plus a copy of each additional file that is changed.

  • The potential problem I can see is if I use rsnapshot to make backup locally and transfer the files to an FTP server I loose the hardlinks and the differential/incremental snapshots will all be full backups, no? – Svante Mar 26 '12 at 14:00
  • Normally to make backups safely, you pull instead of push. Rsnapshot has the option, if I recall correctly, to do this. The danger of pushing backups is that when your system gets compromised, attackers can just delete all of your previous backups. – Lucas Kauffman Mar 26 '12 at 15:09

If you separate os and data, and if os is on lvm, you can use lvm snapshot to backup os and rsync for data. That is how i did it a long time ago.

  • Or better, put both onto LVM and use snapshots for both. – MikeyB Mar 26 '12 at 14:53

Look at Cactus Lone-Tar. It's commercial (inexpensive), but it's well-optimized for the tasks you're looking to accomplish. It's an easy menu-driven setup and creates archive files that can be extracted with TAR. It writes to tape, ftp, ssh, NAS, the CLOUD and anything else.

There's also a bare-metal recovery feature...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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