diff --git a/bin/mvOrga2Nas.sh b/bin/mvOrga2Nas.sh deleted file mode 100755 index 0c55269..0000000 --- a/bin/mvOrga2Nas.sh +++ /dev/null @@ -1,172 +0,0 @@ -#!/bin/bash - -# déplace des orga de -# /var/lib/docker/volumes/ -# vers -# /mnt/disk-nas1/docker/volumes/ - -KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd) -. "${KAZ_ROOT}/bin/.commonFunctions.sh" -setKazVars -DOCK_NAS="/mnt/disk-nas1/docker/volumes" - -DOCK_SRC="${DOCK_VOL}" -DOCK_DST="${DOCK_NAS}" - -export PRG="$0" -cd $(dirname $0) - -. "${DOCKERS_ENV}" - -declare -a availableOrga -availableOrga=($(sed -e "s/\(.*\)[ \t]*#.*$/\1/" -e "s/^[ \t]*\(.*\)-orga$/\1/" -e "/^$/d" "${KAZ_CONF_DIR}/container-orga.list")) - -# no more export in .env -export $(set | grep "domain=") - -export SIMU="" -export ONLY_SYNC="" -export NO_SYNC="" -export FORCE="" -export REVERSE="" - -usage(){ - echo "Usage: ${PRG} [orga...]" - echo " -h help" - echo " -n simulation" - echo " -y force" - echo " -s phase1 only" - echo " -r reverse (${DOCK_NAS} to ${DOCK_VOL})" - echo " -ns no pre sync" - exit 1 -} - -for ARG in $@; do - case "${ARG}" in - '-h' | '-help' ) - usage - ;; - '-n' ) - shift - export SIMU="echo" - ;; - '-y' ) - shift - export FORCE="yes" - ;; - '-s' ) - shift - export ONLY_SYNC="yes" - ;; - '-r' ) - shift - export REVERSE="yes" - ;; - '-ns' ) - shift - export NO_SYNC="yes" - ;; - *) - break - ;; - esac -done - -[[ -z "$1" ]] && usage - -for ARG in $@; do - [[ ! " ${availableOrga[*]} " =~ " ${ARG} " ]] && echo "${RED}${ARG}${NC} is not an orga" && usage -done - -######################################## - -# on copie dans new pour que le changement soit atomique -NEW="" -if [ -n "${REVERSE}" ]; then - DOCK_SRC="${DOCK_NAS}" - DOCK_DST="${DOCK_VOL}" - NEW="/new" - ${SIMU} mkdir -p "${DOCK_DST}${NEW}" -fi -# on garde une copie dans back au cas où -BACK="${DOCK_SRC}/old" - -echo " move from ${BLUE}${BOLD}${DOCK_SRC}${NC} to ${BLUE}${BOLD}${DOCK_DST}${NC}" -checkContinue - -cd "${DOCK_SRC}" -volext=$(ls -d orga* | sed 's%.*-%%' | sort -u) -declare -a orgaPhase2 - -# Pour que l'interruption de service soit la plus courte possible, -# on pré-copie toutes les infos de puis la création de l'orga -echo -n "${BLUE}Phase 1: pre sync.${NC} " -[[ -z "${FORCE}" ]] && [[ -z "${NO_SYNC}" ]] && checkContinue -echo -for ARG in $@; do - for EXT in ${volext}; do - vol="orga_${ARG}-${EXT}" - # test le service existe - [ -e "${DOCK_SRC}/${vol}" ] || continue - # si c'est un lien sur /var/lib c'est déjà fait - [ -z "${REVERSE}" ] && [ -L "${DOCK_SRC}/${vol}" ] && echo "${GREEN}${vol}${NC} : done" && continue - # si c'est un lien sur le NAS c'est un problème - [ -n "${REVERSE}" ] && [ -L "${DOCK_SRC}/${vol}" ] && echo "${GREEN}${vol}${NC} : bug" && continue - # si c'est pas un répertoire c'est un problème - ! [ -d "${DOCK_SRC}/${vol}" ] && echo "${RED}${vol}${NC} : done ?" && continue - # si transfert est déjà fait - if [ -n "${REVERSE}" ]; then - ! [ -L "${DOCK_DST}/${vol}" ] && echo "${RED}${vol}${NC} : done" && continue - fi - echo " - ${YELLOW}${vol}${NC}" - [[ -z "${NO_SYNC}" ]] && ${SIMU} rsync -auHAX --info=progress2 "${DOCK_SRC}/${vol}/" "${DOCK_DST}${NEW}/${vol}/" - [[ " ${orgaPhase2[@]} " =~ " ${ARG} " ]] || orgaPhase2+=( "${ARG}" ) - done -done - -[ -n "${ONLY_SYNC}" ] && exit 0 - -if (( ${#orgaPhase2[@]} == 0 )); then - exit 0 -fi - -echo -n "${BLUE}Phase 2: mv.${NC} " -[[ -z "${FORCE}" ]] && checkContinue -echo -mkdir -p "${BACK}" -for ARG in "${orgaPhase2[@]}"; do - cd "${KAZ_ROOT}" - cd "${KAZ_COMP_DIR}/${ARG}-orga" - ! [ -e "docker-compose.yml" ] && echo "no docker-compose.yml for ${RED}${ARG}${NC}" && continue - ${SIMU} docker-compose down - # L'arrêt ne durera que le temps de copier les modifications depuis la phase 1. - for EXT in ${volext}; do - vol="orga_${ARG}-${EXT}" - # test le service existe - [ -e "${DOCK_SRC}/${vol}" ] || continue - # si c'est un lien sur /var/lib c'est déjà fait - [ -z "${REVERSE}" ] && [ -L "${DOCK_SRC}/${vol}" ] && echo "${GREEN}${vol}${NC} : done" && continue - # si c'est un lien sur le NAS c'est un problème - [ -n "${REVERSE}" ] && [ -L "${DOCK_SRC}/${vol}" ] && echo "${GREEN}${vol}${NC} : bug" && continue - # si c'est pas un répertoire c'est un problème - ! [ -d "${DOCK_SRC}/${vol}" ] && echo "${RED}${vol}${NC} : done ?" && continue - # si transfert est déjà fait - if [ -n "${REVERSE}" ]; then - ! [ -L "${DOCK_DST}/${vol}" ] && echo "${RED}${vol}${NC} : done" && continue - fi - echo " - ${YELLOW}${vol}${NC}" - ${SIMU} rsync -auHAX --info=progress2 --delete "${DOCK_SRC}/${vol}/" "${DOCK_DST}${NEW}/${vol}/" || exit 1 - ${SIMU} mv "${DOCK_SRC}/${vol}" "${BACK}/" - if [ -z "${REVERSE}" ]; then - # cas de /var/lib vers NAS - ${SIMU} ln -sf "${DOCK_DST}/${vol}" "${DOCK_SRC}/" - else - # cas NAS vers /var/lib - ${SIMU} rm -f "${DOCK_SRC}/${vol}" - ${SIMU} mv "${DOCK_DST}${NEW}/${vol}" "${DOCK_DST}/" - fi - done - ${SIMU} docker-compose up -d - [[ -x "reload.sh" ]] && "./reload.sh" - echo -done