Thankfully, I have never had to face the situation, but I have read of individuals who (usually through not remaning abreast of security updates) have had their blogs wiped out.
Recently, reading on a forum about an individual who had lost his blog content, I began to think about my own back strategy and how I might improve it.
Many shared hosting companies religiously backup up client home directories. This is great and gives you the peace of mind that your site exists somewhere should all go wrong. However, there may be a delay when it comes to getting your site off a tape or other media. Usually, the priority for most hosting companies is in keeping their machines online and available, so pulling a site or database from a backup tape will usually not be a high priority and could take anything from 12 to 72 hours. (Some hosts offer a hot spare snapshot of your site so that you can pull in backups yourself on the spot.)
So, what measures can you take to ensure you have a readily available, recent backup should disaster strike?
When backing up WordPress, there are two aspects that need to be considered: files and database.
In order to backup the files, you can set up a scheduled job to copy them to a new location (perhaps using cp -R) or you can archive the contents of your WordPress directory and keep it in a designated area.
In order to backup the database, you can the export/import tools particular to your database. Many run on mysql so a command line tool for this sort of backup would be mysqldump, or if your host offers standard packages like phpMyAdmin then you can use it to peform full database dumps. Once you have a full dump of your database you can copy it off to a safe location.
However, there are several plugins available that enable you to schedule regular backups of the database. These plugins will run regular dump of your database and copy then to a specified location, some wil also compress and email them to a specified address.
Also, WordPress has an inherent export mechanism that allows you to dump your posts, comments, links and users from the administrator console. This is great for doing immediate backups that can be quickly downloaded to your local machine. You can find these functions under Tools -> Export. One tip when using the export tool is to ensure you clear your spam comment queue before exporting. If your blog receives a lot of comment spam and Akismet identifies it and places it in a spam queue, these are still exported, and given the nature of this type of spam it can bloat the size of the exported file quite significantly.
I recommend you check whether your host take regular backups. And also ensure you have your own off site database dumps that are taken at least once per week, preferably nightly.