"This is how I would do a unidirectional sync with bare tools.
At the onset, tar the entire set of files and copy them to the destination point. Also, setup a marker in the base directory.
Now, we want to keep sync'ing from Source to Destination.
At the next time slot for syncing forward (from Source to Destination),
# The backup script cd /Source/base/directory tar cfj -N ./last-sync-time.txt backup.tar.bz2 . scp backup.tar.bz2 user@backup-server:/Backup/Directory/ touch /Source/base/directory/last-sync-time.txt rm -f backup.tar.bz2
The -N ./filename tells tar to archive only files modified or created after filename was modified/created.
Using a local reference for time confirms you make no mistake; if a backup was not taken for some reason, the next one will accumulate it You can setup this script as a cronjob entry on the Source machine I am assuming you will use scp with public key authentication Also assuming you can reach the backup-server whenever this script is issued. To be safer, you can add checks for confirming backup was stored and then, issue the touch command You can choose to also insert commands to expand the backups overlaying them over previous ones at the Destination point; Or, keep incremental tar.bz2 archives."