61 lines
1.0 KiB
Bash
Executable File
61 lines
1.0 KiB
Bash
Executable File
#!/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 <source> -T <target_dir> [-e <extra rsync args>]"
|
|
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}
|