What you're describing sounds like a "snapshot".
My first thought was you could probably use rsync for this. It has the beauty of only transferring the changes on subsequent runs and you can tell it to delete things on the target that are no longer on the source as well.
Since it only does differences you wouldn't have to take the time it would for a full copy like a dd would do.
Doing a Google search with the terms "snapshot", "on", "linux" (leaving out the quotes and the commas) gave me several hits the first of which describes doing a snapshot with rsync:
http://www.mikerubel.org/computers/rsync_snapshots/
Haven't gone through what he wrote but since I was already thinking "snapshot" and "rsync" it seems likely this has what you need.