utils/backup/pull_backup.sh
2025-06-10 10:20:39 -04:00

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}