scp-and-rsync
# simple rsync
rsync -avz source/ destination/
# exclude directory
rsync -avz --exclude 'dir1' source/ destination/
# exclude multiple directories that matches a pattern
rsync -avz --exclude 'dir*' source/ destination/
# exclude a specific file or file type
rsync -avz --exclude 'dir1/dir2/file3.txt' source/ destination/
rsync -avz --exclude '*.txt' source/ destination/
# exclude list from file
rsync -avz --exclude-from 'exclude-list.txt' source/ destination/
# rsync with password
sshpass -p "password" rsync -avz root@1.2.3.4:/abc /def