#!/bin/bash
export LANG=en_US
DATETIME=`date +%Y%m%d%H%M`
HNAME=$(hostname)
OUTPUT_DIR=output/$(date +%Y%m%d)
mkdir -p ${OUTPUT_DIR}
for r in $(ps -eaf | grep pmon | egrep -v 'grep|ASM|APX1' | cut -d '_' -f3)
do
export ORAENV_ASK=NO
export ORACLE_SID=$r
export HTML_FILE=${OUTPUT_DIR}/Rapport_${HNAME}_${ORACLE_SID}_${DATETIME}.html
. oraenv -s > /dev/null
cat html/00_html_header.html >> ${HTML_FILE}
DATE_JOUR=$(date +"%d/%m/%Y %Hh%M")
echo "
Rapport de base de données ${ORACLE_SID} sur le serveur $HNAME
Date : ${DATE_JOUR}
Hostname : $HNAME
Base de données : ${ORACLE_SID}
" >> ${HTML_FILE}
echo "
" >> ${HTML_FILE}
# execution des scripts shell
echo "Configuration système
" >> ${HTML_FILE}
for f in sh/*.sh
do
bash $f >> ${HTML_FILE}
done
echo "
" >> ${HTML_FILE}
# Si ASM, on exécute les scripts ASM
if [ $(ps -ef | grep pmon | grep ASM | wc -l) -gt 0 ]; then
echo "Configuration de l'instance ASM
" >> ${HTML_FILE}
for f in asm/*.sql
do
cat asm/sql_header.txt $f | sqlplus -s / as sysdba >> ${HTML_FILE}
done
fi
# vérifier si la base est une CDB
if [ "$(/bin/sh sql/cdb/is_CDB.sh | tail -1)" == "YES" ]; then
# Executer les scripts sql pour les PDB
for f in sql/cdb/*.sql; do
# Exécuter les scripts SQL pour les PDB
cat sql/sql_header.txt $f | sqlplus -s / as sysdba >> ${HTML_FILE}
done
fi
# execution des scripts sql
echo "Configuration de la base de données ${ORACLE_SID}
" >> ${HTML_FILE}
for f in sql/*.sql
do
cat sql/sql_header.txt $f | sqlplus -s / as sysdba >> ${HTML_FILE}
done
# exécution des scripts dans sh/local si présents
# Chemin du dossier local
LOCAL_DIR="sh/local"
# Exécution des scripts locaux si le dossier existe
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
cat html/99_html_footer.html >> ${HTML_FILE}
echo Rapport dans le fichier html : ${HTML_FILE}
done
# execution des scripts de synthèse :
bash summary.sh