an old post found back on disqr about rsync (original date : circa 2016)
You might want to use the rsync exclude options directly in your
script either by specifying a file with all the exclusions to perform,
or by specifying them in the command line directly :
--exclude-from <file-name with 1 pattern by line>
--exclude <file or="" dir="">
For example :
rsync
-r -a -v -e "ssh -l Username" \
--exclude 'dbconfig.xml' --exclude
'WEB-INF/classes/' --delete \
/local/Directory
remote.server:/remoteDirectory
One important thing to keep in mind
when excluding a directory is that rsync will always consider the path
to be relative to the source directory.
This can be used for example when you want to push your production from a Production JIRA instance to a Staging JIRA instance, but your dbconfig.xml is different (different DB auth parameters for example), and hence want to avoid some files.