Todays versions of WordPress are getting increasingly complex as people move from simple blogs to full content management for their websites.
Because of this it is important to define your backup policies. When and what you should backup and then decide on the easiest way to accomplish this.
If your methods for backup and restore are complex and take long periods of time then it is more likely that you will allow too much time to occur between backups. Being someone that just recently had to rely on a 3 month old backup of just my FireFox bookmarks I can tell you its not fun when you lose a few months worth of simple earmarks to websites let alone data that is part of your website.
When should you make Website Backups?
This is a difficult question to answer in all instances. The main reason to perform a backup is to allow you the ability to restore content in the case of a problem. For this reason a site that allows membership, relies on comments as part of their content or posts large amounts of content every day will have a higher requirement then a static site for a small business like a restaurant that may only change its menu once every few months.
The decision you need to make is how much can you lose before it becomes a concern.
Automated Backup Processes
If you run a site that allows you to use cron scheduled execution of tasks then you can setup backups that will occur without your intervention. You can save your backups to your website account root that is one step up from where the general public can access then download the files routinely.
Another possibility for automated backups depending on your email services is to have the ziped backups sent to you when they are processed. This is not a bad option but it will require that your remote email account is secure, that you have both available space AND the ability to accept large files by mail and that you have the ability to download these files to your home or business computer.
Manual Backups
Most internet hosting accounts now provide a selection of tools to process your backups. These tools will split your backups into two categories. Your files that make up your account and your database that includes content and account information.
In most instances you can make a full backup of your files and you may have the option of storing this on your website root directory out of access from the general public /here/www/ or /here/public_html/ NOT /public_html/here.
You will also need to make a backup of your databases.
I personally like to use my own software to backup my databases and you can write a script to do it if you take a little time. There are also clients for Windows and other operating systems that will allow you to connect directly to your database and store a backup directly on your home computer.
Whatever methods you decide on using the important part is that you want to backup both your files and database.
DUMPING CACHE Before A Backup
If you are not combining your files into a single zip archive then grabbing your website files from your server with FTP will often result in a timeout or disconnect. This is true no matter how fast your server is or your home internet connection. The problem is normally due to you backing up information with thousands of files that is not normally necessary.
Your WordPress backup can be limited to only your wp-content folder because you can always download the files that are stored in your wp-admin or wp-includes folders from the distribution zip file.. those folders do not normally get modified.
You will also need to grab your root folder files including your index.php .htaccess and wp-config.php files. Just grab them all to be safe.
However if you use a cache system such as SuperCache you will find that every webpage now has a static file on your server. You do not need the cached files and they can be ignored.
A better idea is to just empty your cache prior to downloading your wp-content directory.
Backup Policies if you run your own servers
Most websites are now hosted on Linux variants and within Linux there are a number of tools to make automated backups of all of your content.
If you are running your own server or group of servers then you may want to look at a daily backup of both the system and sites. This will give you the most flexibility if a problem should occur.
Unfortunately making full server backups does require a dedicated backup server or dual use of a Mail or DNS server to hold the backups. Another option is to perform this task over an extended period by using remote storage… even your home computer can be setup to monitor changes and backup those changes.
Final Considerations
Making backups is a task that we all must do and we must do it on a schedule that will allow us to recover from both catastrophic events beyond our control and problems that occur when we make simple upgrades and changes that must be reverted from.
With that in mind you should continually explore new methods for reducing the time and load on your workday so you can get back to building content and managing your users.
The progression that you should take is to first understand the tools your hosting service provides.
Make use of the control panel options to make manual backups that you download automatically.
After you are comfortable with making manual backups you can then move to automated cron jobs that can store files locally or email them to you.
Once you have progressed to the use of cron jobs you may want to look at methods of continuous mirroring of your site.
If you run your own server remember that Raid is not enough. It can save you in a pinch but normally it is only a way to ensure that data is available … it is not a backup method.