Here's another way if you want to keep the backup seperate from the machine being backed up, not a bad idea. Setup a share on your other box, mount it up on the fileserver, and again, rsync it. Rsync will do incremental backups as well--so, for example, on my server, I have daily backups for the last week and weekly backups for the last month, and it only archives the changes, meaning all those backups are really only taking up about 1.25 times the space of the stuff thats actually backed up (if that makes any sense... basically, for each of the updates, it makes a soft link to the files that didnt change and only copies the ones that did, so there's only one actual copy of each file, and revision of that file, backed up). Then, set that sucker up on a cronjob to run nightly (or twice a day, or whatever).
So, to reiterate: USB hard drive on Linux machine + rsync + cron, or USB hard drive on other computer + shared folder/drive + rsync + cron. Easy, cheap, and effective