rsync incremental backup

mv backup.3 backup.tmp
mv backup.2 backup.3
mv backup.1 backup.2
mv backup.0 backup.1
mv backup.tmp backup.0
cp -al backup.1/. backup.0   #make hard links
rsync -a --delete source_directory/ backup.0/   #rsync always unlinks before overwriting