The "tools" to backup a whole hard disk to a spare hard disk are already at the linux command prompt. You can use dd, search the forums on "dd" for how to do this eg
http://forums.contribs.org/index.php?topic=26609.0Alternatively if you have a software RAID1 setup, then you can swap out a hard disk (have it in a removeable caddie) and use that as a backup of your whole installed & configured system.
Obviously you wouldn't want to do this every day, so the usual daily backup is still required.
You remove an existing "good" drive and replace it with a "empty" drive and issue the various commands to rebuild the array. 2-3 hours or so later your RAID1 array is fully synchronised. I have some batch file commands setup for expediency and it takes me about 5 minutes to swap the disks and have the server back online.
The removed disk is retained offsite as a fully configured system backup.
In the event of a major problem you can be up and running in a matter of minutes using the spare RAID disk in a degraded array mode (1 disk only).
Either immediately or at a more leisurely pace, you can then restore "data only & mysql db's" from the latest daily backup to bring the drive "up to date" and you can add a second drive and rebuild the array to get full RAID1 functionality back.
You can also look at doing a total rebuild and clean restore or whatever else may be necessary.
Darrell May (dmay contrib area) has a raidmonitor HOWTO for sme 6.x and the partner HOWTO for rebuilding a failed RAID array (RAID Recovery HOWTO), ie how to add a new (blank) disk to a degraded RAID array.
I use this second HOWTO as the basis for swapping the "offsite" drive into the RAID array. Note you need to zero out the drive using dd
dd if=/dev/zero of=/dev/hdc
(replace hdc with your drive eg hda, hdb, hdd)
or delete all partitions (eg with Delpart) before replacing it into the live array.