
What is a Backup
So, what exactly is a backup? It's a secure, VERSIONED, copy of your files. It should also be automatic. Versioning is key, as just mirroring isn't a backup: if you accidentally delete from the source, the copy is deleted too. If the source corrupts, the copy also corrupts. As such RAID is not a backup as it fails to keep your files secure from the biggest threat to them: yourself (sorry, it's true, and eventually we all do it, myself included. I'm still kicking myself for formatting the wrong hard drive last year, thankfully I was backed up properly). Another key aspect is it's automatic. A backup doesn't need to be automatic, strictly speaking, but if it isn't you will soon forget to do it or say "I'll do it later". An automatic backup doesn't have these issues.
Another aspect of a good backup is it's in different states and different locations. Location means things like local (in same PC), on-site (USB/LAN backup), off-site (controlled backup off the premises), and cloud (third-party backup off the premises). A local backup housed in the same PC provides the least added protection, as anything that damages the PC runs the risk of also damaging the backup, but the advantage is restoration is fast when you screw something up. Good practice is an on-site (it provides some distance from the original source) and off-site/cloud. This makes it so you have fast restoration if something very local to your PC happens, but also can restore is a more generalized disaster happens from your off-site/cloud backup. Next is states. States means things like online (as in powered on), offline (powered off), optical (DVDs and the like), mechanical (magnetic hard drives), solid-state (flash-based), tape (hey, it had to be said), and cloud (which is usually a hybrid of the other states). You want different states because it lowers your risk of losing everything in one go. If all your backups are on mechanical hard drives always online, a single power surge in the area could kill them all. The easiest states achievable for most people is one online backup, one offline backup (an external hard drive updated weekly/monthly and otherwise unplugged), and a cloud backup (I'll get to the issues with cloud backups later).
A simple way to achieve an off-site backup without relying on remote backup software or the cloud is what I like to call "The Poor Man's Remote backup". Simply buy two external hard drives. Back up to them, then take one to a friend or family member's house (or to work) and leave it there. Continue backing up to the other external hard drive. Then, at the end of a couple of weeks or the month take the external hard drive you have to the place you are storing the other one and take the other one home and start backing up to that one. Repeat every couple of weeks or month. Sure, your off-site backup isn't all the way up-to-date, but it's definitely a lot better than nothing. IMPORTANT: as soon as your backup leaves your possession it NEEDS to be encrypted. Encryption is always a good idea for backups since generally they are easier to steal than your whole computer, but it's a necessity for any backup that leaves your property.
How to Backup
So, how do you get started? Well, there is no such thing as the perfect backup that works for everyone. Everyone has different needs and as such no single method works for everyone. The important thing is you get started backing up.
Most people know to back up their documents, music, and videos, but they overlook other things. Things like your browser bookmarks, program settings, system settings, and passwords (if using a password database). These things can be equally important and are very simple to back up.
Browser bookmarks: Most browsers now offer a way to sync your bookmarks through the cloud. This also acts as a bare-bones backup system as most don't offer versioning (though some do in limited ways). A better way to do it, and to do it locally, is to back up your bookmarks yourself by backing up the location they are stored. Most browsers offer a way to back up their bookmarks when managing them, and you can also just simply include the application settings folder for your browser in your backup, as this is usually where the bookmarks folder is stored (this also has the advantage of backing up your browser settings, which may be very important for you).
program settings: Generally speaking on windows, most programs store their settings in %appdata% and in the registry. System Restore takes care of the registry, and adding %appdata% to your backup is simple enough. On linux it's usually in the dot folders in your home directory. I'm not certain if that's the same on Mac OS X since Mac OS X applications are very self-contained.
system settings: For the most part this is your registry on Windows and various dot folders for applications on Linux as well as some stuff in the /etc/ folder and a few other places. Once again, I'm not quite certain where this is on Mac OS X.
passwords: if using a password manager, it is very important to back this up. Browser password managers store the passwords in the %appdata% folder for the browser (another reason to back it up). LastPass has the ability to export locally as well, which is quite useful. http://helpdesk.lastpass.com/lastpass-pocket/. KeePass has a very robust trigger system, which among other things, is perfect for keeping versioned backups of your KeePass database. http://keepass.info/help/kb/kb091127_trigger_examples.html. If using KeePass, I highly recommend it. A really cool way to do it is to set a trigger that sees if a host is online after opening the database, if it is, it backs up to a windows file share on that computer. Now you have a backup of your database not on your computer (this obviously only works if you have another computer at home that you trust).
Backup Software
In order to achieve automation, some program needs to be used. As mentioned, doing backups manually is not wise as eventually you'll get lax in doing them. It can be something as simple as a script you've created or as complex as a very expensive program with lots of grade-A technical support. This is definitely one of the things that makes it so there is no perfect backup solution that works for everyone, as everyone has different needs from the software. There are also four basic types of backup software: desktop backup software, centralized backup software, remote/cloud backup software, and system (drive) imaging tools. I'll list some of the good ones I've dealt with or seen below.
Desktop Backup software
This is what most people deal with for their personal backups. This software is installed on your computer and usually backs up to another hard drive, external hard drive, DVD, or networked storage. Some desktop backup software I've found useful over the years for various tasks incldue:
Windows:
http://www.areca-backup.org/ -- powerful, efficient backup with a robust recovery system. It does rely on Java, though and doesn't have a built-in scheduler meaning Task scheduler must be used. It also has a bit of a learning curve to get used to it, but once there it's quite powerful.
http://sites.google.com/site/thebackupmonkey/ -- This was primarily designed for remote backups, but I put it here instead as it does backups to external drives just fine. The Interface takes getting used to and it's not without the quirks, but it also offers features not found in other programs such as a nice plugin system that allows for backing up SQL databases. It's Java Based and I know it works on Mac OS X, though from what I've heard Linux support is broken in a few aspects.
http://www.cobiansoft.com/ -- A nice and effective backup program under constant development (the newest version just entered beta). It offers robust features and is simple to use. The two main problems of the program is it's impractical to do continuous incremental backups, so a full backup needs to be done every month or so (which can be set up within the program, since it's a known issue). Also it doesn't deal well with restoring only the files you want/not restoring deleted files. However, since any program can be used to restore (just standard zip archives), it still offers a lot in a very simple package.
http://www.crashplan.com/ -- Available in free and paid versions. The free version has ads and limits you to backing up once a day, but that's fine for most people. It's a very well designed backup program and can also do remote (free) and cloud (paid) backups. A strong contendor for anyone interested in a good backup program on Windows (it's also cross-platform, another plus, though I'll only list it here).
http://freefilesync.sourceforge.net/ (with versioning enabled) -- With versioning enabled this becomes the simplest replacement for someone who has been manually copying files to an external drive. While the versioning feature does leave things to be desired, the overall simplicity makes it useful in various situations.
http://www.howtogeek.com/howto/1838/using-backup-and-restore-in-windows-7/ -- not to be confused with NTBackup. This was introduced in Windows Vista. It significantly improved upon the weaknesses of NTBackup to produce a quality backup program. Home editions are limited to only backing up to local storage (another hard drive or DVDs), not to Windows shares.
Mac OS X:
http://support.apple.com/kb/HT1427 -- Mac OS X's default backup software and possibly one of the best desktop backup programs out there.
Linux:
http://backintime.le-web.org/ -- a nice and simple backup program based on Time Machine
http://code.google.com/p/flyback/ -- another backup program based on Time Machine
Centralized Backup Systems
These are programs that run on a "server" and back up multiple PCs at once over the network. If you have multiple PCs to back up, this can be quite appealing.
http://backuppc.sourceforge.net/ -- A nice web-managed backup solution that's cross-platform. The documentation and online how-tos for it are pretty good and once set up (which admittedly takes some time) it's quite nice. It features de-duplication so if multiple computers have the same data, it shares that in order to save space.
http://www.bacula.org/en/ (with optional http://webacula.sourceforge.net/) -- An enterprise backup program with the ability to back up to tape. Webacula provides a very nice web interface to it. An annoyance is that even when backing up to disk it creates a vitual tape library instead of doing actual disk-to-disk backups. Still the raw power of it makes it a strong contender.
http://www.fogproject.org/ -- A cross-platform centralized system imageing backup program. It takes a lot of work to set up, but the end result is well worth it if you have a lot of computers. Also, it's very well documented how to roll it out.
http://windows.microsoft.com/en-US/windows/products/windows-home-server -- WHS includes a simple central backup solution for Windows houses. It can do system image backups too.
Remote and Cloud Backups
These backups are done over the Internet. Remote backups are done to places you know (such as a friend's or family member's computer) and cloud backups are stored on a third-party's server.
A common worry about cloud backup is the privacy concern. Even with the privacy concern, there's plenty you can back up online that's not private. I wouldn't personally back up online anything private, but I do use online storage for things like my school and work documents and plan on expanding my online backup to include more files in the near future. Also, remote backups are entirely in your control and there's always the already mentioned "Poor Man's Remote backup that doesn't use the Internet at all.
http://www.crashplan.com/: The simple remote backup solution. It's offered in the free application (though if you also use it as a desktop backup program, the same data you back up locally is backed up remotely. This limitation is removed in the Plus version). All your data is also encrypted, so you don't have to worry about your friend trying to see/steal your files. Just like with the local backup, it's simple to implement and well-documented. http://support.crashplan.com/doku.php/getting_started/back_up_to_a_friend. CrashPlan also offers cloud-based backups for CrashPlan+ members. Their pricing is also very competitive.
http://windows.microsoft.com/en-US/windows-live/essentials-other-programs: This is a file synchronization application that works over the Internet, but if you tell it to synchronize a local backup to a hard drive on another computer, then it'll effectively make your backup remote (just make sure your local backup you are synchronizing is encrypted).
SSH/SFTP, FTPS, and Windows Shares + VPN: Using any desktop backup program in combination with SSH/SFTP, FTPS, or a Windows Share on the other side of a VPN you have effectively done a remote backup. Mac OS X and Linux users are lucky to have SSHFS which makes backing up to a remote system dead-simple. Windows users aren't so lucky. I've found one free implementation of SSHFS that sounds promising for Windows, but I've not yet been able to properly test it. For those interested it is called http://www.eldos.com/sftp-net-drive/. There's also http://www.expandrive.com/, which is $40. Besides that, you can use SSL-protected FTP (FTPS). Most programs that work with FTP will also work with FTPS. Finally if you have a VPN set up, you can access network shares through the VPN creating a secure remote backup solution using windows shares. For information on how to set up a VPN, see the Data Privacy Day threads on the matter. NOTE: DO NOT USE FTP OR FORWARD WINDOWS SHARE PORTS TO THE INTERNET. NEITHER OF THESE ARE SECURE PROTOCOLS AND SHOULDN'T BE USED TO BACK UP DATA OUTSIDE YOUR LAN.
There's also plenty of other cloud services that offer some free storage like Dropbox, SugarSync, ADrive, Amazon Cloud Drive, etc that may suit your needs and offer more storage for a reasonable price (or free). At the very least they'll cover your needs for some documents.
Bare-metal restore
These are programs that can image your hard drive for you to restore from complete system failure. They are called Bare-metal restores because they can restore your data to an unused hard drive exactly like it was before. The biggest advantage of this is that they allow you to quickly get your PC up and running again after a full system failure.
Already mentioned Centralized Backup programs FOG and Windows Home Server's backup program can do bare-metal backup.
Windows 7 -- Windows 7 includes the ability to do a system image for bare-metal backups. As mentioned, though, home editions can only back up to local storage. http://www.howtogeek.com/howto/4241/how-to-create-a-system-image-in-windows-7/.
http://clonezilla.org/ -- A very powerful system imaging tool. Don't let the command-line interface scare you off. It's very simple to use and very powerful.
http://redobackup.org/ -- a very user-friendly GUI to imaging your hard drive. If you are completely afraid of the command line, this is an alternative to CloneZilla.
Anyway, feel free to share your backup strategies and horror stories/why you finally got started backing up. I personally would have posted this sooner, but was seeding two brand new backup drives. Finally my entire system is backed up on a single drive (with another redundant drive) instead of the backup being across multiple drives.