72 lines
3.0 KiB
Bash
Executable File
72 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
#------------------------------------------------------------------------------
|
|
# Ce script effectue une sauvegarde des binaires d'une application Oracle.
|
|
# Il crée une archive tar compressée du répertoire de l'application,
|
|
# en excluant les sous-répertoires non essentiels (admin, audit, diag).
|
|
# Une notification est envoyée à la fin de l'opération (succès ou échec).
|
|
#------------------------------------------------------------------------------
|
|
# Historique :
|
|
# 25/09/2023 : YOU - premiere version pour sauvegarder les binaires
|
|
#------------------------------------------------------------------------------
|
|
|
|
#----------------------------------------
|
|
#------------ MAIN ----------------------
|
|
#----------------------------------------
|
|
|
|
#------------------------------------------------------------------------------
|
|
# initialisation des variables d'environnement
|
|
#------------------------------------------------------------------------------
|
|
export SCRIPTS_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
|
|
|
|
# Nom du fichier .env
|
|
ENV_FILE=${SCRIPTS_DIR}"/.env"
|
|
|
|
# Vérifier si le fichier .env existe
|
|
if [ ! -f "$ENV_FILE" ]; then
|
|
echo "Erreur : Le fichier $ENV_FILE n'existe pas."
|
|
echo "Erreur : Impossible de charger les variables d'environnement."
|
|
exit 1
|
|
fi
|
|
|
|
# Charger les variables d'environnement depuis le fichier .env
|
|
source "$ENV_FILE"
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Variables attendues dans le fichier .env :
|
|
#------------------------------------------------------------------------------
|
|
# BKP_APP_LOCATION : répertoire de stockage des sauvegardes des binaires (ex: /backup/oracle_bin)
|
|
# ORA_APP_LOCATION : répertoire de base des binaires Oracle (ex: /u01/app/oracle)
|
|
# NTFY_URL : URL pour les notifications (service ntfy.sh)
|
|
#------------------------------------------------------------------------------
|
|
|
|
# S'assurer que toutes les variables utilisées sont définies
|
|
set -u
|
|
# Gérer les erreurs dans les pipelines
|
|
set -o pipefail
|
|
|
|
|
|
# creation du repertoire de sauvegarde. S'il existe la commande install ne fait rien
|
|
mkdir -p ${BKP_APP_LOCATION}
|
|
|
|
#------------------------------------------------------------------------------
|
|
# sauvegarde
|
|
#------------------------------------------------------------------------------
|
|
|
|
cd ${BKP_APP_LOCATION}
|
|
# suppression des anciennes sauvegardes (note: cette commande supprime TOUTES les anciennes sauvegardes)
|
|
rm -fv backup_bin_oraapp_*.tgz
|
|
# compression du repertoire oracle app avec exclusion des répertoires admin, diag et audit
|
|
if sudo tar cfz "${BKP_APP_LOCATION}/backup_bin_oraapp_$(date +%Y%m%d).tgz" \
|
|
--exclude="${ORA_APP_LOCATION}/oracle/admin" \
|
|
--exclude="${ORA_APP_LOCATION}/oracle/audit" \
|
|
--exclude="${ORA_APP_LOCATION}/oracle/diag" \
|
|
"${ORA_APP_LOCATION}"; then
|
|
# notification de succès
|
|
curl -d "$(hostname) - backup des binaires terminée" "${NTFY_URL}"
|
|
else
|
|
# notification d'échec
|
|
curl -d "$(hostname) - ERREUR: backup des binaires a échoué" "${NTFY_URL}"
|
|
exit 1 # Quitter avec un code d'erreur
|
|
fi
|
|
|