Permier version
This commit is contained in:
parent
508bfa4a23
commit
e1a901a146
66
backup-swam.sh
Normal file
66
backup-swam.sh
Normal file
@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
source /mnt/backup/swarm/.env
|
||||
# Tableau permettant d'enregistrer le status des backup pour chaque noeud
|
||||
declare -A tab_resultat_backup
|
||||
# Tableau permettant d'enregistrer le status de Docker
|
||||
declare -A tab_status_docker
|
||||
|
||||
echo "Verif fichiers de log"
|
||||
if compgen -G "${dir_logs}/*.log" > /dev/null; then
|
||||
/bin/rm ${dir_logs}/*.log
|
||||
fi
|
||||
|
||||
# Arrêt de docker
|
||||
ssh root@${node} "systemctl stop --quiet docker"
|
||||
|
||||
# Traitement du resultat suite à l'arrêt du service Docker
|
||||
docker_status_stop=$?
|
||||
sleep 10
|
||||
docker_status=`ssh root@${node} "systemctl is-active docker"`
|
||||
if [[ $docker_status_stop -gt 0 && $docker_status == "active" ]]
|
||||
then
|
||||
echo "Noeud ${node} : Le service docker n'a pas pu être arrêté. Sauvegarde annulée" > ${dir_logs}/${node}.log
|
||||
else
|
||||
# Si Docker arrêté, la sauvegarde est lancée
|
||||
/usr/bin/rsync -avAX --log-file=${dir_logs}/${node}.log --log-file-format="File changed! %f %i" $SOURCE $TARGET/backup.${node}
|
||||
|
||||
# Traitement du resultat de la sauvegarde
|
||||
resultat=$?
|
||||
|
||||
if [[ ${resultat} -gt 0 ]]; then
|
||||
tab_resultat_backup[${node}]="❌ ${node} : Erreur de sauvegarde du répertoire Swarm"
|
||||
else
|
||||
tab_resultat_backup[${node}]="✅ ${node} : Sauvegarde reussie du répertoire Swarm"
|
||||
fi
|
||||
|
||||
# Relance du service Docker
|
||||
ssh root@${node} "systemctl start --quiet docker"
|
||||
sleep 10
|
||||
|
||||
# Traitement du resultat suite à la relance du service Docker
|
||||
docker_status_start=$?
|
||||
docker_status=`ssh root@${node} "systemctl is-active docker"`
|
||||
|
||||
if [[ docker_status_start -gt 0 && $docker_status != "active" ]]
|
||||
then
|
||||
tab_status_docker[${node}]="❌ ${node} : Le service Docker n'a pas pu être relancé"
|
||||
else
|
||||
tab_status_docker[${node}]="✅ ${node} : Le service Docker a pu être relancé"
|
||||
fi
|
||||
fi
|
||||
|
||||
MAIL_SUBJECT="📥 Rapport de sauvegardes Docker Swarm"
|
||||
# Envoi de l'email
|
||||
echo "Mail Subject: " $MAIL_SUBJECT
|
||||
(echo -e "$MAIL_SUBJECT\n\nStatut des sauvegardes:\n"; \
|
||||
for result in "${!tab_resultat_backup[@]}"; do
|
||||
echo -e "${tab_resultat_backup[${result}]}"
|
||||
echo -e "${tab_status_docker[${result}]}"
|
||||
done
|
||||
echo -e "\nJournal de sauvegarde:\n"; \
|
||||
cat ${dir_logs}/*.log) | \
|
||||
mail \
|
||||
-a "From: ${FROM}" \
|
||||
-a "Organization: Maison" \
|
||||
-s "$MAIL_SUBJECT" \
|
||||
$EMAIL_RECIPIENT
|
Loading…
Reference in New Issue
Block a user