I’ve implemented web sites of varying types, including:
- Media Wiki
- Probably a couple of others
With the exception of the static sites, these ALL run in databases and invariably they ALL need to be backed up, files and databases included.
Many web site administrators will either rely on their web host provider to perform these backups and/or implement a backup plug-in for their CMS of choice.
The advantage of webhost provider based backups is that it’s a complicated matter that you don’t have to worry about. The drawback for the webhost provider based backups is that backup and recovery for YOUR site is now out of your hands. Let’s hope your webhost provider has got it right. Otherwise, you may not have a site to recover. In addition, if your site gets hacked, you could have a real difficult time finding where the bad code is, and I’ll cover this later.
The advantage of plug-ins is that, depending on the plug-in, you can get a LOT of functionality, such as file/database backup and recovery, site migrations and much more. The disadvantage is that the site needs to be RUNNING in order to use it.
For the past few years, I’ve been logging into my sites via ‘ssh’ and have been performing file/database backups to a remote host. I’ve been performing daily as well as weekly backups and have kept about 3 months worth of backups for these sites. The advantage is that I can go back several months to restore a site and have used this to compare recent and old site files to find a site hack. In addition, it doesn’t matter WHICH CMS I’m using or even if it’s running. As long as I can ssh into the site and dump the files and database, I’m good to go. The disadvantage is that each backup is a FULL backup and these can consume considerable disk space.
Really, what I need is a decent backup utility that:
- Can access multiple sites via ssh or rsync
- Can backup files
- Can backup the databases
- Is automated
- Doesn’t matter which CMS I’m using
- Supports incremental backups (thus saving huge amounts of disk space)
In the Linux world, Bacula is very popular, however I’ve chosen an application called rsnapshot. This uses perl scrips and the rsync command to create a repository of backups and I’ve been able to configure it to access multiple sites and databases and to backup much more data than I otherwise would have been able to with FULL daily/weekly backups.