Fixes
This commit is contained in:
parent
4a2eb7588d
commit
72ad582b17
98
v2b.sh
98
v2b.sh
|
|
@ -1,51 +1,22 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
#set -o xtrace
|
set -o xtrace
|
||||||
set -u
|
set -u
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
UMASK="$(umask)"
|
UMASK="$(umask)"
|
||||||
|
|
||||||
final-local () {
|
|
||||||
if [[ -z "$(ls -A ${TEMPF})" ]]; then
|
|
||||||
rmdir "${TEMPF}"
|
|
||||||
else
|
|
||||||
if [[ $KEEP == "true" ]]; then
|
|
||||||
mv "${FOLDER}" "${NEWFL}"
|
|
||||||
else
|
|
||||||
rm -rf "${FOLDER}"
|
|
||||||
fi
|
|
||||||
mv "${TEMPF}" "${FOLDER}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
final-remote () {
|
|
||||||
if [[ -z "$(ls ${TEMPF})" ]]; then
|
|
||||||
rmdir "${TEMPF}"
|
|
||||||
else
|
|
||||||
sudo scp -r "${TEMPF}" "${ADDR}:/srv/backup/${TEMPF}" || exit 1
|
|
||||||
if [[ $KEEP == "true" ]]; then
|
|
||||||
sudo ssh "${ADDR}" "cd /srv/backup; mv \"${FOLDER}\" \"${NEWFL}\""
|
|
||||||
else
|
|
||||||
sudo ssh "${ADDR}" "cd /srv/backup; rm -rf \"${FOLDER}\""
|
|
||||||
fi
|
|
||||||
sudo scp -r "${TEMPF}" "${ADDR}:/srv/backup" && rm -rf "${TEMPF}"
|
|
||||||
sudo ssh "${ADDR}" "cd /srv/backup; mv \"${TEMPF}\" \"${FOLDER}\""
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
cprompt () {
|
cprompt () {
|
||||||
if [[ $UNATTENDED == "true" ]]; then return; fi
|
if [[ $UNATTENDED == "true" ]]; then
|
||||||
read -r -s -N 1 -p "Continue [Enter]?"
|
return;
|
||||||
|
fi
|
||||||
|
read -r -s -N 1 -p "Press 'Enter' to continue "
|
||||||
if [[ $REPLY != $'\n' ]]; then
|
if [[ $REPLY != $'\n' ]]; then
|
||||||
printf "\n"
|
printf "\n"
|
||||||
printf " Script stopped!\n"
|
printf " Backup stopped!\n"
|
||||||
if [[ $SEND == "true" ]]; then
|
return 1
|
||||||
final-remote
|
else
|
||||||
else
|
printf "\n"
|
||||||
final-local
|
|
||||||
fi
|
|
||||||
exit
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -76,11 +47,7 @@ while getopts ':s:pku' OPT; do
|
||||||
done
|
done
|
||||||
shift $((OPTIND -1))
|
shift $((OPTIND -1))
|
||||||
|
|
||||||
if [[ $SEND == "true" ]]; then
|
FOLDER="_vols_"
|
||||||
FOLDER="_$(hostname -f)_"
|
|
||||||
else
|
|
||||||
FOLDER="_vols_"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $# > 0 ]]; then
|
if [[ $# > 0 ]]; then
|
||||||
VOLUMES="$(sudo docker volume ls -q |grep "${1}")"
|
VOLUMES="$(sudo docker volume ls -q |grep "${1}")"
|
||||||
|
|
@ -93,23 +60,15 @@ if [[ -z $VOLUMES ]]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $SEND == "true" ]]; then
|
if [[ -d ${FOLDER} ]]; then
|
||||||
if sudo ssh "${ADDR}" test -d "/srv/backup/${FOLDER}"; then
|
LASTF="$(ls -d --format=single-column ${FOLDER}* |tail -n1)"
|
||||||
LASTF="$(sudo ssh "${ADDR}" ls -d --format=single-column ${FOLDER}* |tail -n1)"
|
|
||||||
else
|
|
||||||
LASTF="${FOLDER}"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
if [[ -d ${FOLDER} ]]; then
|
LASTF="${FOLDER}"
|
||||||
LASTF="$(ls -d --format=single-column ${FOLDER}* |tail -n1)"
|
|
||||||
else
|
|
||||||
LASTF="${FOLDER}"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
INDEX="$((( ${LASTF#${FOLDER}} + 0 )))"
|
INDEX="$((( ${LASTF#${FOLDER}} + 0 )))"
|
||||||
NEWFL="${FOLDER}$(printf "%05d" $((( ${INDEX} + 1 ))))"
|
NEWFL="${FOLDER}$(printf "%05d" $((( ${INDEX} + 1 ))))"
|
||||||
TEMPF="$(mktemp -dt -p $PWD XXXXXXXXXXXXXXX)"
|
TEMPF="$(mktemp -dt -p $PWD _XXXXXXXXXXXXXXX_)"
|
||||||
|
|
||||||
for VOL in ${VOLUMES}; do
|
for VOL in ${VOLUMES}; do
|
||||||
if [[ $REMOVE == "true" ]]; then
|
if [[ $REMOVE == "true" ]]; then
|
||||||
|
|
@ -118,18 +77,35 @@ for VOL in ${VOLUMES}; do
|
||||||
TAR="${VOL}.tar.bz2"
|
TAR="${VOL}.tar.bz2"
|
||||||
fi
|
fi
|
||||||
printf "${VOL} --> ${TEMPF}/${TAR}\n"
|
printf "${VOL} --> ${TEMPF}/${TAR}\n"
|
||||||
cprompt
|
cprompt || break
|
||||||
sudo docker run --rm --log-driver none \
|
sudo docker run --rm --log-driver none \
|
||||||
-v "${VOL}:/volume" \
|
-v "${VOL}:/volume" \
|
||||||
-v "${TEMPF}:/backup" \
|
-v "${TEMPF}:/backup" \
|
||||||
loomchild/volume-backup backup -v "${TAR}"
|
loomchild/volume-backup backup -v "${TAR}"
|
||||||
sudo chmod 400 "${TEMPF}/${TAR}"
|
sudo chmod 600 "${TEMPF}/${TAR}"
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ $SEND == "true" ]]; then
|
if [[ -z "$(ls -A ${TEMPF})" ]]; then
|
||||||
final-remote
|
rmdir "${TEMPF}"
|
||||||
else
|
else
|
||||||
final-local
|
if [[ $KEEP == "true" ]]; then
|
||||||
|
mv "${FOLDER}" "${NEWFL}"
|
||||||
|
else
|
||||||
|
rm -rf "${FOLDER}"
|
||||||
|
fi
|
||||||
|
if mv "${TEMPF}" "${FOLDER}"; then
|
||||||
|
if [[ $SEND == "true" ]]; then
|
||||||
|
if [[ $ADDR =~ ":" ]]; then
|
||||||
|
if sudo ssh "${ADDR%:*}" "mkdir -p ${ADDR#*:}"; then
|
||||||
|
sudo scp "${FOLDER}"/* "${ADDR}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if sudo ssh "${ADDR}" "mkdir -p ${PWD}/_$(hostname -f)_"; then
|
||||||
|
sudo scp "${FOLDER}"/* "${ADDR}:${PWD}/_$(hostname -f)_"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set +o xtrace
|
set +o xtrace
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue