O rsync faz isso - backup incremental - com muita facilidade.
No modo linha de comando, a partir de um script, uso a seguinte sintaxe:
rsync -r -t -v --progress --delete --ignore-existing -l -H -s /caminho_de_origem/ /caminho_de_destino/
Exemplo:
rsync -r -t -v --progress --delete --ignore-existing -l -H -s /media/884E62CB4E62B21C/Users/User/Music/ /media/7B39875E4B680F66/BKUP/bkup-hal9000-winvista/users/user/music/
O backup é incremental, sincroniza o que há na origem com o destino, apaga no destino se não existir na origem.