I recently gave a short talk about what I discovered while looking for Linux alternatives to OSX’s Time Machine. There are a few solutions in there, from DIY shell commands all the way up to full GUIs with scheduling and housekeeping functions.
Addendum: I had been doing mirror-style rsync backups of user accounts previously, sometimes while the user was logged in. This had never presented a problem. When I switched to doing incremental backups, users reported being unable to start an X session. (Ok, they reported “my password doesn’t work,” but I was able to log in remotely via ssh; the basic login action was working fine.) It turns out that the .Xauthority file was becoming corrupt if I did an incremental backup while the user was in a active X session. The safest way around this is to only do incremental backups of user accounts while the users are logged out. This is probably the safest policy for other reasons as well, but when your users are on machines that are often only turned on while they’re in use, it’s less convenient to do it this way.
My CPOSC 2012 talk about automating real-world tasks with Arduino, featuring a garage door opener that knows when you’re home, and a treadmill that knows when you’re on it.