#!/bin/bash ### E x a m p l e # -S cvtt@cloud23.cvtt.vpn:/works/docker/infisical/backup/ # -T /backup/cloud23/infisical/ # -e "--remove-source-files" usage() { echo "Usage: $0 -S -T [-e ]" exit 1 } # ---------------- Default AddRsyncArgs= # ---------------- cmdline while getopts "S:T:e:" opt; do case ${opt} in S ) Source=$OPTARG ;; T ) TargetDir=$OPTARG ;; e ) AddRsyncArgs=$OPTARG ;; \? ) echo "Invalid option: -$OPTARG" >&2 usage ;; : ) echo "Option -$OPTARG requires an argument." >&2 usage ;; esac done # ---------------- cmdline if [ "${Source}" == "" ] then usage fi if [ "${TargetDir}" == "" ] then usage fi Cmd="mkdir -p ${TargetDir}" echo ${Cmd} && eval ${Cmd} || exit Cmd="rsync" Cmd+=" -ahv" Cmd+=" -e 'ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'" Cmd+=" ${AddRsyncArgs}" Cmd+=" ${Source}" Cmd+=" ${TargetDir}" echo ${Cmd} eval ${Cmd}