Backups are the most important part of developing and deploying any website. Automation of backups means that you can set a time interval at which your site is backed up without having to manually execute the backup.
There are a few different ways of automating your WordPress Backups. Each one has its own good and bad points and you will need to decide which one is right for you.
Along with your own backups you may have noticed that your web hosting service performs backups of your account. It is important that you do not rely on these backups for normal business but you should review the availability of these backups in case of emergency. Most web hosting services will state that although backups are performed every 24 hours or so… there is a possibility that some portions of your account will not be backed up during this process. They may miss a full directory of your image or not backup your database on a specific night due to the settings of the scripts they use. For the most part what a Web Host will backup is your primary account information. This is the information they need to provide an account. It is not the settings , software, files that you have installed.
Now that you know you are basically on your own you will need to devise a backup strategy of your own.
CRON Jobs are a good way to backup your account. If you are good at scripting then you can archive your files into a tar.gz file and export your databases through a MySQL dump then have them stored locally or emailed to yourself on an outside service. CRON jobs are fired or executed at a specific time. You can set a CRON Job to run once a day, once an hour or once every Thursday at 2:25am if you want.
When backing up your files you should exclude your cache directories. A more difficult option is an incremental backup that only gathers files that have changed. I would personally stick to full backups of your content and then decide if it is worth your time to backup email and FTP directories and core software install files.
We are not going to go into details of designing a cron job but read along for options you will need to account for if this is a method you would like to use.
Remote applications are software… either scripts or full applications that sit on a remote computer and then execute the backup based on a number of rules you have setup.
Personally I use a few Windows GUI applications to generate my backups. They login to my server then perform the backup and store it on my home computer. I use this method because of the number of accounts I need to backup and the size of the files.
When you are talking about hundreds of megabytes or even a couple gigs of backups you may find that emailing your files is not a good option.
I suggest that you go to download.com and look at some applications that you can let run overnight on your business or home computer to perform backups of your databases and files automatically.
However you should store your backups separately from your development server. Never dump your backups into your development server automatically because you never know if there has been corruption in the backup.
Backup Plugins for WordPress
Backing up WordPress from within WordPress through the use of Import / Export or a Plugin is another option.
The difference between Import / Export and a plugin that can perform a backup can be pretty large.
Many backup plugins can grab specific directories of your site’s files for backup and also backup your database.
Often the backup is stored on the server. This is not the best option because someone could grab your backup .. restore it to their own test server then gain access to a lot of information .. including passwords.
A better option is to have your backup mailed to you or at the very least stored outside of your web root /www/ or /public_html/ so there is a smaller chance anyone can get to it.
Here are a few WordPress Plugins for Backups
Remember do not backup to your server unless you are sure your files are not assessable from the web. If you have any question about that contact your web host for help.