Back In Time is a backup utility for workstations that takes periodic snapshots using rsync.
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. That won’t save me if the house burns down (that’s what online backups are for) but it will save me even if the computer that one stick is plugged into is stolen or suffers a massive failure.
Back In Time does not back up hot databases (as far as I know, nothing does) but it can back up the .sql dump produced by tools such as phpMyAdmin. Don’t forget to set up scheduled automatic backups of your databases.