diff --git a/bin/gestContainers.sh b/bin/gestContainers.sh index 1678d0c..6cf64b6 100755 --- a/bin/gestContainers.sh +++ b/bin/gestContainers.sh @@ -8,30 +8,38 @@ KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd) setKazVars . $DOCKERS_ENV . $KAZ_ROOT/secret/SetAllPass.sh +. $KAZ_ROOT/secret/env-kaz PRG=$(basename $0) -#TODO: ce tab doit être construit à partir de la liste des machines dispos et pas en dur -tab_sites_destinations_possibles=("kazoulet" "prod2" "prod1") +####################################### +# tout est dans le env_kaz +# NAS_VOL="/mnt/disk-nas1/docker/volumes/" + +# OPERATE_ON_MAIN= # par defaut NON on ne traite que des orgas +# OPERATE_ON_NAS_ORGA="OUI" # par defaut oui, on va aussi sur les orgas du NAS +# OPERATE_LOCAL_ORGA="OUI" # par defaut oui + +# TEMPO_ACTION_STOP=2 # Lors de redémarrage avec tempo, on attend après le stop +# TEMPO_ACTION_START=60 # Lors de redémarrage avec tempo, avant de reload le proxy + +# DEFAULTCONTAINERS="cloud agora wp wiki office paheko castopod" + +# APPLIS_PAR_DEFAUT="tasks calendar contacts bookmarks mail richdocuments external drawio snappymail ransomware_protection" #rainloop richdocumentscode + +# QUIET="1" # redirection des echo + +################################################################################################################### #GLOBAL VARS -NAS_VOL="/mnt/disk-nas1/docker/volumes/" availableOrga=($(getList "${KAZ_CONF_DIR}/container-orga.list")) AVAILABLE_ORGAS=${availableOrga[*]//-orga/} availableContainersCommuns=( $(getList "${KAZ_CONF_DIR}/container-withMail.list") $(getList "${KAZ_CONF_DIR}/container-withoutMail.list")) -OPERATE_ON_MAIN= # par defaut NON on ne traite que des orgas -OPERATE_ON_NAS_ORGA="OUI" # par defaut oui, on va aussi sur les orgas du NAS -OPERATE_LOCAL_ORGA="OUI" # par defaut oui - -TEMPO_ACTION_STOP=2 # Lors de redémarrage avec tempo, on attend après le stop -TEMPO_ACTION_START=60 # Lors de redémarrage avec tempo, avant de reload le proxy - CONTAINERS_TYPES= -defaultContainersTypes="cloud agora wp wiki office paheko castopod" # les containers gérés par ce script. declare -A DockerServNames # le nom des containers correspondant DockerServNames=( [cloud]="${nextcloudServName}" [agora]="${mattermostServName}" [wiki]="${dokuwikiServName}" [wp]="${wordpressServName}" [office]="${officeServName}" [paheko]="${pahekoServName}" [castopod]="${castopodServName}" ) @@ -54,14 +62,11 @@ declare -A NbOrgas declare -A RunningOrgas declare -A Posts -QUIET="1" # redirection des echo OCCCOMANDS=() MMCTLCOMANDS=() EXECCOMANDS=() -# CLOUD -APPLIS_PAR_DEFAUT="tasks calendar contacts bookmarks mail richdocuments external drawio snappymail ransomware_protection" #rainloop richdocumentscode usage() { @@ -114,6 +119,10 @@ ${PRG} -office -m -r restart de tous les collaboras (libére RAM) ${PRG} -cloud -u -r -q -n Affiche toutes les commandes (-n -q ) pour mettre à jour toutes les applis des clouds + restart (-u -r) ${PRG} -p \"monorga:town-square\" \"Hello\" monorga # envoie Hello sur le centreville de l'orga monorga sur son mattermost dédié +Valeurs par défaut : + +Tempo de Stop : ${TEMPO_ACTION_STOP} +Tempo de restart : ${TEMPO_ACTION_START} " } @@ -128,7 +137,7 @@ _populate_lists(){ if [ -z "${CONTAINERS_TYPES}" ]; then # wow, on traite tout le monde d'un coup... - CONTAINERS_TYPES="$defaultContainersTypes" + CONTAINERS_TYPES=${DEFAULTCONTAINERS} fi for TYPE in ${CONTAINERS_TYPES}; do diff --git a/bin/gestUsers.sh b/bin/gestUsers.sh index ba2a54b..731969f 100755 --- a/bin/gestUsers.sh +++ b/bin/gestUsers.sh @@ -1,7 +1,7 @@ #!/bin/bash # gestion des utilisateurs de kaz ( mail, cloud général, mattermost ) -#KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd) -KAZ_ROOT=/kaz + +KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd) . $KAZ_ROOT/bin/.commonFunctions.sh setKazVars diff --git a/bin/interoPaheko.sh b/bin/interoPaheko.sh index 9fdadde..67dcdeb 100755 --- a/bin/interoPaheko.sh +++ b/bin/interoPaheko.sh @@ -1,7 +1,6 @@ #!/bin/bash KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd) -KAZ_ROOT=/kaz . $KAZ_ROOT/bin/.commonFunctions.sh setKazVars diff --git a/bin/postfix-superviz.sh b/bin/postfix-superviz.sh index cad0f90..1ce6191 100755 --- a/bin/postfix-superviz.sh +++ b/bin/postfix-superviz.sh @@ -1,7 +1,7 @@ #!/bin/bash # supervision de postfix -#KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd) -KAZ_ROOT=/kaz + +KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd) . $KAZ_ROOT/bin/.commonFunctions.sh setKazVars diff --git a/bin/scriptBorg.sh b/bin/scriptBorg.sh index 9d92cf4..2c511f8 100755 --- a/bin/scriptBorg.sh +++ b/bin/scriptBorg.sh @@ -14,8 +14,7 @@ # les script pre et post doivent s' appelle pre_xxxxx.sh ou post_xxxx.sh # La variable BORGSCRIPTS est le chemin du repertoire des scripts dans la config générale de Kaz ##################################################### -#KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd) -KAZ_ROOT=/kaz +KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd) . $KAZ_ROOT/bin/.commonFunctions.sh setKazVars . $DOCKERS_ENV diff --git a/bin/scriptSauve.sh b/bin/scriptSauve.sh deleted file mode 100755 index 3533241..0000000 --- a/bin/scriptSauve.sh +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/bash -# Didier le 14 Septembre 2022 -# -# TODO : Inclure un script post et pre. -# -##################################################### -#KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd) -KAZ_ROOT="/kaz" -. $KAZ_ROOT/bin/.commonFunctions.sh -setKazVars -. $DOCKERS_ENV -. $KAZ_ROOT/secret/SetAllPass.sh -VERSION="1.0" -PRG=$(basename $0) -RACINE=$(echo $PRG | awk '{print $1}') -IFS=' ' -# -##################################################### -MAILSOURCE="sauve@kaz.bzh" -VOLUME_SAUVEGARDES="/mnt/backup-nas1" -#SAUVE_REPO=${VOLUME_SAUVEGARDES}/SauveRepo -SAUVE_REPO=admin@nas-kaz1:/share/Backup/SauveRepo -MAIL_RAPPORT="didier@kaz.bzh;francois@kaz.bzh;fab@kaz.bzh;fanch@kaz.bzh" -##################################################### -SCRIPTLOG="/mnt/disk-nas1/log/${PRG}-$(date +%d-%m-%Y-%H-%M-%S).log" -FICLOG="/var/log/${PRG}.log" -##################################################### -# - la liste des repertoires à sauver séparés par un espace -LISTREPSAUV="/var/lib/docker/volumes /kaz" -##################################################### -# - Les sauvegardes à garder jour, semaines, mois -NB_BACKUPS_JOUR=15 -NB_BACKUPS_SEM=8 -NB_BACKUPS_MOIS=12 -##################################################### -# Recevoir un mail quand la sauvegarde est OK ? -MAILOK=true -##################################################### - -trap 'LogFic "script stoppé sur un SIGTERM ou SIGINT" >&2; exit 2' INT TERM - -LogFic() { - [ ! -w ${FICLOG} ] && { echo "Probleme d' ecriture dans $FICLOG" ; exit 1 ;} - echo "$(date +%d-%m-%Y-%H-%M-%S) : $1" >> ${FICLOG} -} -# -ExpMail() { - MAIL_SOURCE=$1 - MAIL_SUJET=$2 - MAIL_DEST=$3 - MAIL_TEXTE=$4 - docker exec -i mailServ mailx -a 'Content-Type: text/plain; charset="UTF-8"' -r ${MAIL_SOURCE} -s "${MAIL_SUJET}" ${MAIL_DEST} << EOF - ${MAIL_TEXTE} -EOF -} -Sauvegarde() { - #$1 est le repertoire à sauver, on créé le sous repertoire dans le repo - CODE_TMP="" - if [ -r $1 ] - then - echo "Sauvegarde $1" >>${SCRIPTLOG} - #mkdir -p ${SAUVE_REPO}/$1 >/dev/null 2>&1 - #rdiff-backup --verbosity 3 $1 ${SAUVE_REPO}/$1 >>${SCRIPTLOG} 2>>${SCRIPTLOG} - rsync -aAHXh --del --stats --exclude 'files_trashbin' $1 ${SAUVE_REPO} >>${SCRIPTLOG} 2>>${SCRIPTLOG} - CODE_TMP=$? - else - LogFic "$1 n' existe pas ou n' est pas accessible en lecture" - CODE_TMP=1 - fi - LogFic "Code Retour de la sauvegarde de $1 : ${CODE_TMP}" - BACKUP_EXIT=$(expr ${BACKUP_EXIT} + ${CODE_TMP} ) -} -# -Purge() { - echo "Commande prune de rdiff-backup" - PRUNE_EXIT=$? -} -# ****************************************************** Main ******************************************************************* -# Création du fichier de log -touch ${FICLOG} -# -LogFic "#########################################################################################################################" -LogFic " *************** ${PRG} Version ${VERSION} ***************" -LogFic "#########################################################################################################################" -# test si les variables importantes sont renseignées et sortie si tel n' est pas le cas -if [ -z "${VOLUME_SAUVEGARDES}" ] || [ -z "${SAUVE_REPO}" ] -then - echo "VOLUME_SAUVEGARDES et SAUVE_REPO à verifier" - LogFic "VOLUME_SAUVEGARDES et SAUVE_REPO à verifier" - LogFic "Sortie du script" - exit 1 -fi - -##################################################################################################################################################### -################### Mise en commentaire de cette section puisque le repo est en rsync ( voir plus tard comment gérer ça ) -# test si le volume de sauvegarde est ok -#grep "${VOLUME_SAUVEGARDES}" /etc/mtab >/dev/null 2>&1 -#if [ "$?" -ne "0" ] -#then -# echo "le volume de sauvegarde ${VOLUME_SAUVEGARDES} n' est pas monté" -# LogFic "Erreur de montage du volume ${VOLUME_SAUVEGARDES} de sauvegarde" -# exit 1 -#fi -# Test si j' ai le droit d' écrire dans le Repo -# [ ! -w ${SAUVE_REPO} ] && { echo "Verifier le droit d' écriture dans ${SAUVE_REPO}" ; LogFic "Verifier le droit d' écriture dans ${SAUVE_REPO}"; exit 1;} -##################################################################################################################################################### - -# Tout se passe bien on continue -LogFic " - Repertoire a sauver : ${LISTREPSAUV}" -#LogFic " - Volume Nfs monté : ${VOLUME_SAUVEGARDES}" -LogFic " - Destination des sauvegardes : ${SAUVE_REPO}" -LogFic " - Rapport par Mail : ${MAIL_RAPPORT}" -#LogFic " - Backups jour : ${NB_BACKUPS_JOUR} , Backups semaines : ${NB_BACKUPS_SEM} , Backups mois : ${NB_BACKUPS_MOIS}" -LogFic "#########################################################################################################################" -LogFic " - Démarrage de la sauvegarde" -LogFic " - Log dans ${SCRIPTLOG}" -BACKUP_EXIT=0 -PRUNE_EXIT=0 -for REPS in ${LISTREPSAUV} -do - LogFic "Sauvegarde de ${REPS}" - Sauvegarde ${REPS} -done -LogFic "Code retour compilé de toutes les sauvegardes : ${BACKUP_EXIT}" -################################## a gérer plus tard -#LogFic " - Démarrage du nettoyage des sauvegardes" -#Purge -#LogFic " - Code retour du Nettoyage des sauvegardes (0=OK; 1=WARNING, 2=ERROR) : ${PRUNE_EXIT}" -# -######################################################################################## -# On teste le code retour de la sauvegarde, on log et on envoie des mails -case "${BACKUP_EXIT}" in - '0' ) - IFS='' - MESS_SAUVE_OK=" -Salut - -La sauvegarde est ok, ce message peut être enlevé avec la variable MAILOK=false -Que la force soit avec toi - -Ton esclave des sauvegardes" - LogFic " - la sauvegarde est OK" - [ "$MAILOK" = true ] && ExpMail ${MAILSOURCE} "Sauvegarde Ok" ${MAIL_RAPPORT} ${MESS_SAUVE_OK} - IFS=' ' - ;; - * ) - IFS='' - MESS_SAUVE_ERR=" -Salut - -La sauvegarde est en Erreur -Le log à consulter est ${SCRIPTLOG} -Code retour de la Sauvegarde ( code Rsync ): ${BACKUP_EXIT} - -Ton esclave des sauvegardes" - LogFic " - !!!!! Sauvegarde en Erreur !!!!!" - ExpMail ${MAILSOURCE} "!!!! Sauvegarde en Erreur !!!!" ${MAIL_RAPPORT} ${MESS_SAUVE_ERR} - IFS=' ' - ;; -esac -LogFic " - Fin de la sauvegarde"