You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
5.0 KiB
163 lines
5.0 KiB
#!/bin/bash
|
|
# Script de relance des dockers Nextcloud des Orgas
|
|
# Permet de lancer la commande d' optimisation des clouds
|
|
# Permet de connaitre la version des clouds
|
|
# Permet de relancer les dockers en mode a chaud ou à froid ( docker restart ou docker-compose down et up)
|
|
# lancer le script san arguments pour optenir de l' aide
|
|
#
|
|
KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
|
|
. $KAZ_ROOT/bin/.commonFunctions.sh
|
|
setKazVars
|
|
. $DOCKERS_ENV
|
|
. $KAZ_ROOT/secret/SetAllPass.sh
|
|
|
|
PRG=$(basename $0)
|
|
RACINE=$(echo $PRG | awk '{print $1}')
|
|
|
|
TEMPO_ACTION_STOP=2
|
|
TEMPO_ACTION_START=120
|
|
LIST_CLOUDS=$(ls /var/lib/docker/volumes/ | grep -i orga | grep -i cloudMain| sed -e 's/-cloudMain$//g' | sed -e 's/^orga_//')
|
|
NB_CLOUDS=$(ls /var/lib/docker/volumes/ | grep -i orga | grep -i cloudMain| sed -e 's/-cloudMain$//g' | sed -e 's/^orga_//' | wc -l )
|
|
COMPTEUR=$NB_CLOUDS
|
|
|
|
# On ne met pas le -ti dans la ligne avec docker exec pour l'update
|
|
# Ceci afin de permettre son lancement en cron
|
|
UpdateApplis() {
|
|
echo -e "${NC}"
|
|
echo "Mise à jour de toutes les applis installées y compris le cloud Principal"
|
|
for CLOUD in ${LIST_CLOUDS}
|
|
do
|
|
echo -e "${GREEN}${COMPTEUR}/${NB_CLOUDS} : ${CLOUD} "
|
|
echo -e "${NC}"
|
|
docker exec -u 33 ${CLOUD}-nextcloudServ /var/www/html/occ app:update --all
|
|
COMPTEUR=$(expr $COMPTEUR - 1)
|
|
done
|
|
echo -e "${GREEN} Mise à jour des applis du cloud principal "
|
|
echo -e "${NC}"
|
|
docker exec -u 33 nextcloudServ /var/www/html/occ app:update --all
|
|
}
|
|
|
|
|
|
Optimise_Cloud() {
|
|
echo "--------------------------------------------------------"
|
|
echo "${NC}Optimisation des cloud"
|
|
echo "--------------------------------------------------------"
|
|
for CLOUD in ${LIST_CLOUDS}
|
|
do
|
|
echo -e "$RED${CLOUD} (${COMPTEUR}/${NB_CLOUDS}) "
|
|
echo -e "$GREEN execution de :occ db:add-missing-indices"
|
|
docker exec -ti -u 33 ${CLOUD}-nextcloudServ /var/www/html/occ db:add-missing-indices
|
|
docker exec -ti -u 33 ${CLOUD}-nextcloudServ /var/www/html/occ db:convert-filecache-bigint --no-interaction
|
|
COMPTEUR=$(expr ${COMPTEUR} - 1)
|
|
done
|
|
echo "${NC}"
|
|
}
|
|
|
|
|
|
restart-compose() {
|
|
echo "--------------------------------------------------------"
|
|
echo "${NC} Arret / Relance de ${NB_CLOUDS} orga(s)"
|
|
echo "--------------------------------------------------------"
|
|
for CLOUD in ${LIST_CLOUDS}
|
|
do
|
|
echo "${RED}- ${CLOUD}-orga${NC}($COMPTEUR/$NB_CLOUDS)"
|
|
cd /kaz/dockers/$CLOUD-orga
|
|
echo -n "${NC}Arrêt ... "
|
|
docker-compose stop cloud
|
|
sleep ${TEMPO_ACTION_STOP}
|
|
echo "${GREEN}OK"
|
|
echo -n "${NC}Démarrage ... "
|
|
docker-compose up -d cloud
|
|
echo "${GREEN}OK"
|
|
COMPTEUR=$(expr $COMPTEUR - 1)
|
|
done
|
|
sleep ${TEMPO_ACTION_START}
|
|
reloadProxy
|
|
echo "${NC}"
|
|
echo "--------------------------------------------------------"
|
|
echo "${GREEN}FIN${NC} "
|
|
echo "--------------------------------------------------------"
|
|
}
|
|
|
|
restart() {
|
|
echo "--------------------------------------------------------"
|
|
echo "${NC} Arret / Relance de ${NB_CLOUDS} orga(s)"
|
|
echo "--------------------------------------------------------"
|
|
for CLOUD in ${LIST_CLOUDS}
|
|
do
|
|
echo "${RED} ${CLOUD}-orga ${NC}($COMPTEUR/$NB_CLOUDS)"
|
|
echo -n "${NC}Redemarrage ... "
|
|
docker restart $CLOUD-nextcloudServ
|
|
echo "${GREEN}OK"
|
|
COMPTEUR=$(expr $COMPTEUR - 1)
|
|
done
|
|
reloadProxy
|
|
echo "${NC}"
|
|
echo "--------------------------------------------------------"
|
|
echo "${GREEN}FIN${NC} "
|
|
echo "--------------------------------------------------------"
|
|
}
|
|
|
|
reloadProxy() {
|
|
echo "${NC}"
|
|
availableProxyComposes=($(getList "${KAZ_CONF_DIR}/container-proxy.list"))
|
|
|
|
for item in "${availableProxyComposes[@]}"; do
|
|
${KAZ_COMP_DIR}/${item}/reload.sh
|
|
done
|
|
}
|
|
|
|
|
|
version() {
|
|
for CLOUD in ${LIST_CLOUDS}
|
|
do
|
|
VERSION_CLOUD=$(docker exec -ti -u 33 ${CLOUD}-nextcloudServ /var/www/html/occ status | grep -i version:)
|
|
VERSION_UPDATE=$(docker exec -ti -u 33 ${CLOUD}-nextcloudServ /var/www/html/occ update:check | grep -i "available\." | cut -c 1-17)
|
|
echo -e "-($COMPTEUR/$NB_CLOUDS): ${CLOUD}-orga ${GREEN}${VERSION_CLOUD}${NC} "
|
|
if [ ! -z "${VERSION_UPDATE}" ]
|
|
then
|
|
echo -e "\t -Version disponible : ${RED} ${VERSION_UPDATE} ${NC}"
|
|
fi
|
|
COMPTEUR=$(expr $COMPTEUR - 1)
|
|
done
|
|
}
|
|
|
|
usage() {
|
|
echo "${PRG} -v -r -t -h
|
|
quand :
|
|
-v Donne la version des clouds et signale les MàJ
|
|
-o Lance la procédure Nextcloud pour optimiser les performances
|
|
-u Mets à jour les apllis des clouds
|
|
-t Dans le cas d' une mise à jour , redémarre avec tempo tous les dockers des orga ( docker-compose )
|
|
-r Redémarre tous les dockers des orga ( docker restart )
|
|
-h Cette aide :-)"
|
|
}
|
|
|
|
########## Main #################
|
|
[ -z "$1" ] && { usage;exit; }
|
|
case "$1" in
|
|
'-o' )
|
|
Optimise_Cloud
|
|
exit
|
|
;;
|
|
'-v' )
|
|
version
|
|
exit
|
|
;;
|
|
'-t' )
|
|
restart-compose
|
|
exit
|
|
;;
|
|
'-u' )
|
|
UpdateApplis
|
|
exit
|
|
;;
|
|
'-r' )
|
|
restart
|
|
exit
|
|
;;
|
|
'-h' )
|
|
usage
|
|
;;
|
|
esac
|
|
|
|
|