#!/bin/bash # Ce script exécute des sql pour fournir une vue global de certains aspect de la base # tous les datafiles, toutes les sauvegardes, toutes les erreur dans alertlog, ... export LANG=en_US DATETIME=`date +%Y%m%d%H%M` HNAME=$(hostname) OUTPUT_DIR=output/$(date +%Y%m%d) mkdir -p ${OUTPUT_DIR} # Execution des scripts sql for sqlfile in summary/*.sql do # on prepare le fichier output FILENAME=$(basename "$sqlfile" | cut -d_ -f2) BASENAME="${FILENAME%.*}" HTML_FILE=${OUTPUT_DIR}/Summary_${BASENAME}_${HNAME}_${DATETIME}.html # insertion du header HTML cat html/00_html_header.html >> ${HTML_FILE} for sid in $(ps -eaf | grep pmon | egrep -v 'grep|ASM|APX1' | cut -d '_' -f3) do export ORAENV_ASK=NO export ORACLE_SID=$sid . oraenv -s > /dev/null # ajout du nom de la base echo '

Base de données : '$sid'

' >> ${HTML_FILE} # ajouter le resultat du script sql dans la page html cat summary/01_sql_header.txt $sqlfile | sqlplus -s / as sysdba >> ${HTML_FILE} done # insertion du footer HTML cat html/99_html_footer.html >> ${HTML_FILE} echo Rapport synthèse pour ${FILENAME} dans : ${HTML_FILE} done # exécution des scripts dans sh/local si présents # Chemin du dossier local LOCAL_DIR="sh/local" for shfile in ${LOCAL_DIR}/*.sh do # on prépare le fichier output FILENAME=$(basename "$shfile") BASENAME="${FILENAME%.*}" HTML_FILE=${OUTPUT_DIR}/Summary_${BASENAME}_${HNAME}_${DATETIME}.html # insertion du header HTML cat html/00_html_header.html >> ${HTML_FILE} if [ -d "$LOCAL_DIR" ]; then echo "[INFO] Détection du dossier local : $LOCAL_DIR" for f in "$LOCAL_DIR"/*.sh; do [ -f "$f" ] || continue echo "[INFO] Exécution du script local : $f" bash "$f" >> ${HTML_FILE} done else echo "[INFO] Aucun script local détecté dans ${LOCAL_DIR}." fi # insertion du footer HTML cat html/99_html_footer.html >> ${HTML_FILE} echo Rapport synthèse pour ${FILENAME} dans : ${HTML_FILE} done