Take a look at existing utilities, i think mostly at
rsync which is complete and very versatile. You can also search on the web for backup utilities, search engines are your friends
Then you can wrap some scripting around it to make it more personnal ans user friendly.
For that purpose, if you're beginner in shell scripting you can write it in pseudo-code to set the logic of the application. Minimum requirements is to have an idea of the behaviour of tests and loops:
- if... ; then...; else ...; fi
- while ... ; do ....; done
- for ... in ... ; do.... ; done...
For the remaining, if you don't know the syntax, just respect the logic and use common words.
Begin your lines of pseudo-code by '#' so that they can remain as comments in the script for further debugging.
Hope this can help you.