Back In Time is a backup utility for workstations that takes periodic snapshots using rsync.
I have since moved on to SpiderOak for backups and recommend it, but perhaps these notes may be of use to someone who whom online backup isn’t an option.
Back In Time is largely self-explanatory. Be aware that it runs with the permissions of the user that launches it, so to avoid complications always run it as root. Otherwise the user instance and root instance will both set cron jobs and the system may be overrun with tasks.
Launch it as root, set as desired, and allow it to schedule needed cron jobs. Then review your cron jobs and modify as needed, perhaps setting a nice value. Make sure there are no duplicated cron jobs.
Your backup repository must be formatted with a POSIX-compliant filesystem. For USB sticks, be aware that they are invariably sold formatted with VFAT, so you will have to reformat them. Gparted works well for this. One good filesystem for this purpose is ext2.
I have identical redundant backups. To do this — say, two USB sticks, swapping the stick every day — format and label each device identically. Set up Back In Time normally, then run a manual backup on one device. Confirm that Back In Time created the top-level directory “backintime” on the device. As root, create the empty directory “backintime” on the second device and run a manual backup on it. Henceforth Back In Time will consider each to be the same device.
Back In Time does not itself back up databases, but it can back up the .sql files produced by tools such as phpMyAdmin. Don’t forget to set up scheduled automatic backups of your databases.