7
votes

I'm looking for an Open Source website backup tool. I'm more interested in Open Source so I can make changes if need be and possibly contribute to the software.

  1. Automatic scheduled FTP backups from mutiple web servers.
  2. MySQL backups from databases (only partially important as I can just do mySQL dumps and get those with ftp)
  3. Differential and/or Incremental backups (improtant for bandwidth and disk space.)
  4. Windows 7 or Linux support.

I'm not really sure if this is a better question for Server Fault but I feel it can live here easy enough. Thank you for any suggestions.

Software I've found
- Cobian Backup

Note this for backing up data on web servers, usually shared hosting. Installing software on the remote server is impossible, so ftp and mysql access is about it.

8
  • What server OS (Windows/Linux/Mac) are you running? If it is Linux, then is there a reason a cron job would not work?
    – Mike
    Aug 1, 2010 at 2:19
  • I want something a bit more complicated than a simple cron job.. and windows and mac all have simular functions.
    – WalterJ89
    Aug 1, 2010 at 5:31
  • the computer I'm planning to put this on in Windows 7 and already has Subversion installed...
    – WalterJ89
    Aug 1, 2010 at 5:39
  • Can you run any commands on the server, if it is shared? Even if there are apps that will download your entire site via FTP, file-by-file downloads are incredibly slow (lots of requests). It is much more efficient to compress the whole site into a zip file and download that. Sep 10, 2010 at 12:06
  • more often than not command line is available. so compressing before downloading sounds good
    – WalterJ89
    Sep 11, 2010 at 17:29

5 Answers 5

4
votes

Whichever backup solution you go with, realize that backups are worthless if you don't test them. This means, having a restore strategy, and actually simulating a complete recovery. You don't have to kill your production data to do this, but you need to make 100% sure that you can actually recover what you need to using your backups. Also version control is not a form of backups, you had best hope that you have a backup of your repository and that you test that you can restore the repository from that backup in case of catastrophic failure. With that said, Amanda is a very powerful tool, if that is what you are looking for. Otherwise, tar, dump, restore, and mysqldump are your friends.

1
  • excellent point. Now I just need to find a good PHP dependency/include checker. (biggest problem with rollbacks I've found.) Sep 17, 2010 at 5:04
1
vote

Subversion

Pros:

  • It shares in work-groups easily
  • It helps with version tracking
  • It manages updates

Cons:

  • Rollbacks can be a pain, to sort out what was lost in the rollback
  • It can cause work directories to become quite cluttered.
  • It can be difficult for designers and programmers to share workspace, as they use it differently.

(---edit for alternate solution---)

A PHP routine that lets you download a zip archive of the whole site.

Pros:

  • Its a full single backup for milestones. (to keep stability tested versions)
  • Its web-based.
  • Code rollbacks are easy
  • Does not require an .svn hook to a directory

Cons:

  • Does not share nicely
  • Magic numbers and magic words in the code do not transition across domains easily
  • Requires much more storage space to archive
4
  • 1
    I was kind of thinking about this as Subversion is already installed.. I'm just dont know how to get it to ftp and only download new files.. yet.
    – WalterJ89
    Aug 1, 2010 at 5:48
  • Mercurial works just as well too. I highly recommend using a VCS/DVCS not just for backups but also easy rollbacks.
    – Tim Post
    Aug 1, 2010 at 16:43
  • As gabe mentioned, svn alone is not a backup. You need to also backup your repository. That said, I'm not sure how good of an idea it is to version control application data rather than code. I suppose for apps that don't have large amounts of data it might be OK. Though I personally would rather keep data and source code backups separately. Sep 10, 2010 at 15:30
  • TortoiseSVN tortoisesvn.tigris.org works good under windows... it adds a shell hook to sync your work directory with the .SVN. but yes make backups of your repository also, otherwise the option to perform rollbacks is non-existent. Sep 17, 2010 at 5:10
1
vote

You should take a look at Amanda backups. You can do everything in your list except for the FTP part but you shouldn't have to worry about that since it comes with its own way of shipping the backups around. One of the best things about it is that it stores all the backups in a standard way and they can be extracted without Amanda if you would ever need to do that. There is also a commercial version that has even more features like backing up to Amazon S3.

1
vote

I've used a thing called rsnapshot, which is a wrapper around rsync. So far have only used it on LAN but am about to try over the internet. Mainly linux support, but you may be able to do Windows with an rsyncd port.

0
votes

Unless you are storing data in files, I would use version control to keep track of different revisions of the websites code. You could use subversion, but imo git is better.

However, it does make sense to maintain backups to the database. The best thing to do would be to run a sort of cron job which uses MySQL's features to make a backup. These backups can then be archived and compressed. On GNU/Linux the command is mysqldump, but I don't know about windows.

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