If you want to backup the entire system, it is best to do it cold by booting into something like clonezilla. Then you image the whole drive as a snapshot. You can later restore by booting into clonezilla again or similar and copying the disk image back over the disk.
http://clonezilla.org/
If you want to backup a database, such as postgres as you mention, you should use database tools particular to your setup. For example, I use AutoMySQLBackup to backup my MySQL database with rolling backups. I put the command in a crontab that checks if my USB drive is connected and, if so, runs the backup.
http://sourceforge.net/projects/automysqlbackup/
Thirdly, if it's your personal machine, you should also be backing up /home. For this, I use "Back in Time" which keeps track of changes in files. This protects you even from problems like overwriting or deleting a file by mistake, undoing edits and other user errors. Lifehacker has a good overview of it. It's also a good idea to occasionally make a full copy of your /home to a USB drive and store it off-site such as at your office. You can use an encrypted USB drive if that's a concern.
http://lifehacker.com/5212899/back-in-time-does-full-linux-backups-in-one-click
Many people find the full disk clone/restore isn't really less hassle than just doing a fresh install. Many people also don't have their own SQL databases. That's why you see the focus on just /home.
/home
contains all of your data, including a few programs. Like he says, it also has your app settings inside, so reinstalling your apps requires no configuration whatsoever. And, like he says, backing up the whole system will take a while and then restoring it will also take a while; you might as well to a drive clone./home
is already large enough without having apps, system files and logs to copy as well. – TheWanderer Oct 01 '15 at 01:13