Mon script n'entre pas dans mon CASE
Bonjour,
J'essaie de créer un script .sh et une partie de script rman pour pouvoir faire mes sauvegardes dans un premier temps.
J'ai rajouté plein d'écho dans mon script sh et je vois qu'il n'arrive pas à rentrer dans mon case ou je fait l'appel à toute mes fonctions
Script sh
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| function get_oracle_sids ()
{
local spfiles=("$ORACLE_HOME"/dbs/spfile*.ora)
echo "Récupération des spfiles: $spfiles"
local filename=""
for file in "${spfiles[@]}"
do
filename="${file##*/}"
echo "Filename de la fonction get_oracle_sids : $filename"
oracle_sids+=( $(basename "${filename#spfile}" ".ora") )
echo "Oracle_sids fonciton get_oracle: ${!oracle_sids[*]} "
done
}
function get_status ()
{
for sid in "${oracle_sids[@]}"
do
echo "Oracle_sid fonction get_status: ${oracle_sids[@]}"
export ORACLE_SID="$sid"
$ORACLE_HOME/bin/sqlplus -s -L '/ as sysdba' << EOF
PROMPT ================= Statut de la base $sid ==================
SELECT INSTANCE_NAME, STATUS, DATABASE_STATUS FROM V\$INSTANCE;
PROMPT Statut des PDBs de la base $sid
show pdbs;
PROMPT _______________________________________________________________
EOF
done
}
function startup ()
....
function shutdown ()
...
function backup ()
.....
function main ()
{
# chargement de la configuration
CONFIG_FILE=/monappli/$(basename "$0" ".sh").conf
echo "Fichier de configuration : $CONFIG_FILE"
[[ -f "$CONFIG_FILE" ]] && source "$CONFIG_FILE" || {
echo "Fichier de configuration introuvable"
exit 1
}
# récupération des ORACLE_SID
oracle_sids=()
echo "oracle_sid $oracle_sids"
get_oracle_sids
echo "Lancement fonction get_oracle_sids"
[[ -z $oracle_sids ]] && {
echo "Oracle SIDS dans la condition pour la fonction statut $oracle_sids"
echo "Impossible de déterminer un ORACLE_SID"
exit 1
}
while :
do
echo "On rentre dans l'exécution de toutes les fonctions"
echo "valeur du case : $1"
case "$1" in
status)
echo "On est dans la fonciton statut"
get_status
;;
start)
echo "On est dans la fonction startup"
startup
;;
stop)
echo "On est dans la fonction stop"
shutdown
.... |
Affichage de mes echos :
- On est sorti du main
- Fichier de configuration : /mon appli_conf/sauvegarde_bdd_oracle.conf
- oracle_sid
- Récupération des spfiles: /exec/oracle/product/12.2.0.1/db/dbs/spfileXXXXX.ora
- Filename de la fonction get_oracle_sids : spfileXXXXX.ora
- Oracle_sids fonciton get_oracle: 0
- Filename de la fonction get_oracle_sids : spfileXXXXX.ora
- Oracle_sids fonciton get_oracle: 0 1
- Filename de la fonction get_oracle_sids : spfileXXXXX.ora
- Oracle_sids fonciton get_oracle: 0 1 2
- Lancement fonction get_oracle_sids
- On rentre dans l'exécution de toutes les fonctions
- valeur du case :
Quelqu'un aurait une idée car je ne comprend pas
Merci à tous par avance