Hello harithahv! The command you're looking for is 'rsync'
It will automatically only copy files that have changed. A simple cron job for rsync would look something like this:
0 0 * * 0 rsync -a /backups/ [email protected]
This will synchronize a directory called /backups/ with a /backups/ directory on a remote server every Sunday morning at 12AM.
The trailing slashes are important, I learned that the hard way. I'd encourage you to check out the man page on rsync to see all the options that are available. For general purpose synchronization I like to use the -a flag. You can also use --delete-after to remove any files on the remote server that have also been removed form the local client.
I hope this helps!