Server backup system

Posted on 2010-01-10 17:52:42

My home server is 10 years old now: it’s running this website, my personal intranet, a svn server and some other websites, and before today I didn’t have any backup system in place. The last backup I have of the data dates back to April 2008, so I decided it was time to have a proper backup system. Particularly since the server is somewhat ageing.

My idea:

  1. Tar and gzip the entire /home folder every night using a cron job. All SVN, MySQL and Apache data is stored in /home (good thing I set it up that way), so that’ll cover everything that might change daily
  2. Every month, make a copy of the entire system, in addition to the daily backup of /home
  3. Copy the .tar.gz backup file(s) to my desktop computer every day. The desktop computer has enough space for storing the backups: the compressed home directory is just over 100MB.

That way, I will lose at most one day of data, which isn’t much of a problem.

The first and second part were easy: at my previous job I had also written a backup script, and it’s not that difficult to just .tar.gz a directory using a shell script that’s kicked off by a cron job.

The third part (transferring the backup file to my desktop computer) was a little harder: I don’t have the desktop turned on at specific times every day, so automatically pushing the data from the server wasn’t an option: it has to be pulled.

In the end, I decided to write a GUI program that starts up when I log in on my desktop computer. From this control center, I can list all backups on the server, download backups, and delete old ones. Two days (about 8 programming hours) later it was done and running smoothly.

Screenshots:

Main screen:

Downloading a backup:

Posted in: Computers, Linux