I accidentally hosed a post last night. I was trying to delete an attachment to a post but instead deleted the entire post. Luckily I have nightly backups, so restore was quick and easy. It was the first time in a LONG time that I've had to restore the database, but I am extremely relieved that my backup system is working perfectly. I also rsync the backups to my home computer they are stored in two different places.,
My backup solution used to be flexbackup. In fact I am still using it while I evaluate rsnapshot. I recently had bought 2 320G drives and used them in a RAID1 configuration. These eventually appeared to fail (they have since been "repaired" by using Seagate's SeaTools software; apparently RAID arrays don't like bad blocks too much) and I reverted back to the old 120G drive that I was using before I went to the RAID1 configuration. Anyways, during the period that I thought my drives or motherboard were totally screwed up (thanks for SeaTools Desktop which is not very good, unlike SeaTools for DOS which is) I bought a new computer since I sort of needed one anyways.
In my new computer I got another 320G hard drive (no RAID1 this time). So I have two extra 320G drives laying around (that had since been repaired using SeaTools for DOS). I decided to use these two drives as backups. For a while I kept my flexbackup nightly cron jobs going, which tarball up my user data and puts it on my MythTV box (which has lots of free space). And I used my 320G drives as an rsync backup of my entire drive. This was kind of lame, but I liked how all the data was right there. No tarballs to unpack. It sucks not having nightly or weekly backups though.
Then I discovered rsnapshot. It essentially makes uncompressed incremental backups while still giving you a snapshot of your entire drive (except any "excludes"), through the magic of hard links. With the price of hard disks these days, it makes absolutely no sense to use compression. If network traffic is an issue, then maybe. But if you're mostly backing up photos like me, then compression won't help too much.
So I put each of my 2 320G hard drives in an enclosure (with eSATA). Every Sunday I will rotate them out and take one of them to work as an off-site backup. The is the first time ever that I have had true off-site backup. Normally I have backed up my stuff to the same machine, same hard drive, different hard drive, or a different machine in the same building. Recently after moving into a new place I became a bit more worried about a buglar making off with both my main machine and my mythtv box that had my flexbackup backups on it. rsnapshot and the fact that I have tons of space on 2 320G drives seems to be providing the perfect solution for me right now: incremental backups, nightly snapshots of all my data without compression, and off-site backup.
"It requires a simple installation, and users choose to back up their entire hard drive or just parts of it. Carbonite then begins the backup process, uploading 2 GB per day over broadband until finished. Files are encrypted, and there is no limit on total storage. If you delete a file, Carbonite keeps it stored for 30 days in case you change your mind. Carbonite monitors files that are changed and backs them up right away.
And if you have a problem and need to get the data downloaded to a reformatted hard drive or new computer, Carbonite will download at up to 15GB per day over broadband until your system is restored."
The bad news is that they don't support linux or Mac OS X just yet. If you click on the download link, it will tell you that the software is only available for Windows XP and you can then enter your email address and they will notify you when it is ready. I really hope they make this available for *NIX users. If they do, I'll use it for sure.
I just discovered a very useful bash script tonight, AutoMySQLBackup. It is a nice and easy way to backup your mysql databases daily, weekly, and monthly. It was very easy to set up and works great. A great suggestion to prevent having to put the username and password for a database user with read/write access in the script is to do the following:
mysql -u root -p -e "GRANT SELECT, LOCK TABLES ON *.* TO 'backup'@'localhost' IDENTIFIED BY 'backupPW';"
That creates a database called backup with password backupPW with only SELECT and LOCK TABLES access to the database. This tip came from this gentoo-wiki.com article on MySQL backup.