Réorganisation repo SHELL

This commit is contained in:
Demonic 2022-03-10 15:35:55 +01:00
parent 23af032737
commit f90b4d236c
4 changed files with 377 additions and 377 deletions

View File

@ -1,100 +1,100 @@
#!/bin/ksh #!/bin/ksh
# TITRE check_nbproc.sh # TITRE check_nbproc.sh
# DESCRIPTION : Script de check du nombre de processus # DESCRIPTION : Script de check du nombre de processus
# USAGE : lancement du script en ajoutant l'argument -p <nom du processus> -c <nombre de processus voulu> # USAGE : lancement du script en ajoutant l'argument -p <nom du processus> -c <nombre de processus voulu>
# HISTORIQUE : # HISTORIQUE :
# T | Date | Auteur | Description # T | Date | Auteur | Description
#---+------------+------------------------------+------------------------------------ #---+------------+------------------------------+------------------------------------
# A | 16/07/21 | Demonic | Création # A | 16/07/21 | Demonic | Création
# ----------------------------------------------------------------------------------- # -----------------------------------------------------------------------------------
######################################### #########################################
## DECLARATION DES VARIABLES ## ## DECLARATION DES VARIABLES ##
######################################### #########################################
# INITIALISATION DESCRIPTION ALERTE NAGIOS # INITIALISATION DESCRIPTION ALERTE NAGIOS
statusReport="" statusReport=""
# INITIALISATION SEVERITE ALERTE NAGIOS (OK PAR DEFAUT) # INITIALISATION SEVERITE ALERTE NAGIOS (OK PAR DEFAUT)
severityReport=0 severityReport=0
# INITIALISATION VARIABLE DU NOM DU PROCESSUS # INITIALISATION VARIABLE DU NOM DU PROCESSUS
NOMPROC="" NOMPROC=""
# INITIALISATION VARIABLE DU NOMBRE TOTAL DE PROCESSUS VOULU # INITIALISATION VARIABLE DU NOMBRE TOTAL DE PROCESSUS VOULU
NBOK="" NBOK=""
# INITIALISATION VARIABLE DU NOMBRE TOTAL DE PROCESSUS PRESENT # INITIALISATION VARIABLE DU NOMBRE TOTAL DE PROCESSUS PRESENT
NBPROC="" NBPROC=""
######################################### #########################################
## DECLARATION DES FONCTIONS ## ## DECLARATION DES FONCTIONS ##
######################################### #########################################
# decho(){ # decho(){
# [ ${debug} -gt 0 ] && echo $* # [ ${debug} -gt 0 ] && echo $*
# } # }
# FONCTION POUR DEFINIR LA SEVERITE DE L'ALERTE # FONCTION POUR DEFINIR LA SEVERITE DE L'ALERTE
setSeverity(){ setSeverity(){
severityToSet=${1} severityToSet=${1}
case ${severityToSet} in case ${severityToSet} in
0)[ ${severityReport} -lt 1 ] && severityReport=0;; 0)[ ${severityReport} -lt 1 ] && severityReport=0;;
1)[ ${severityReport} -lt 2 ] && severityReport=1;; 1)[ ${severityReport} -lt 2 ] && severityReport=1;;
2) severityReport=2;; 2) severityReport=2;;
esac esac
} }
# FONCTION USAGE (option -h) # FONCTION USAGE (option -h)
USAGE(){ USAGE(){
echo "Ce script permet de vérifier le nombre de processus actifs pour un processus donné et renvoyer une alerte via Nagios si moins/plus de processus" echo "Ce script permet de vérifier le nombre de processus actifs pour un processus donné et renvoyer une alerte via Nagios si moins/plus de processus"
echo "USAGE : check_nbproc.sh -p <processus> -c <nb_de process_voulus>" echo "USAGE : check_nbproc.sh -p <processus> -c <nb_de process_voulus>"
exit 0 exit 0
} }
######################################### #########################################
## RECUPERATION DES ARGUMENTS ## ## RECUPERATION DES ARGUMENTS ##
######################################### #########################################
# ARGUMENT -p : NOM DU PROCESSUS # ARGUMENT -p : NOM DU PROCESSUS
# ARGUMENT -c : NOMBRE DE PROCESS VOULU # ARGUMENT -c : NOMBRE DE PROCESS VOULU
# ARGUMENT -h : USAGE # ARGUMENT -h : USAGE
while getopts ":p:c:h:" opt; do while getopts ":p:c:h:" opt; do
case "${opt}" in case "${opt}" in
p) NOMPROC="${OPTARG}";; p) NOMPROC="${OPTARG}";;
c) NBOK="${OPTARG}";; c) NBOK="${OPTARG}";;
h) USAGE;; h) USAGE;;
esac esac
done done
######################## ########################
## PROGRAMME ## ## PROGRAMME ##
######################## ########################
# LISTING DU NOMBRE DE PROCESSUS # LISTING DU NOMBRE DE PROCESSUS
NBPROC=$(ps -ef | grep -i "$NOMPROC" | grep -v grep | grep -v "check_" | wc -l) NBPROC=$(ps -ef | grep -i "$NOMPROC" | grep -v grep | grep -v "check_" | wc -l)
# CONDITION POUR DETERMINER SI CHECK OK/KO # CONDITION POUR DETERMINER SI CHECK OK/KO
if [ $NBPROC -eq $NBOK ]; then if [ $NBPROC -eq $NBOK ]; then
# CHECK OK # CHECK OK
# FORMATTAGE CONTENU NAGIOS # FORMATTAGE CONTENU NAGIOS
statusReport="<font color="green"><b>Nombre de processus $NOMPROC OK</b></font>" statusReport="<font color="green"><b>Nombre de processus $NOMPROC OK</b></font>"
else else
# CHECK KO # CHECK KO
# PASSAGE SEVERITE NAGIOS CRITICAL # PASSAGE SEVERITE NAGIOS CRITICAL
setSeverity 2 setSeverity 2
# FORMATTAGE CONTENU NAGIOS # FORMATTAGE CONTENU NAGIOS
statusReport="<font color="red"><b>Nombre de processus $NOMPROC KO | $NBPROC OK pour $NBOK voulu<i> Processus KO de 23h à 7h, ne pas prendre en compte dans cette période.</i></b></font>" statusReport="<font color="red"><b>Nombre de processus $NOMPROC KO | $NBPROC OK pour $NBOK voulu<i> Processus KO de 23h à 7h, ne pas prendre en compte dans cette période.</i></b></font>"
fi fi
# AFFICHAGE DU CONTENU NAGIOS SI DEBUG # AFFICHAGE DU CONTENU NAGIOS SI DEBUG
# decho "severityReport=${severityReport};statusReport=${statusReport}" # decho "severityReport=${severityReport};statusReport=${statusReport}"
# AFFICHAGE RESULTAT CHECK # AFFICHAGE RESULTAT CHECK
echo "${statusReport}" echo "${statusReport}"
# SORTIE DU SCRIPT AVEC SEVERITE NAGIOS # SORTIE DU SCRIPT AVEC SEVERITE NAGIOS
exit ${severityReport} exit ${severityReport}
# FIN DE SCRIPT # FIN DE SCRIPT

View File

@ -1,113 +1,113 @@
#!/bin/bash #!/bin/bash
# TITRE check_tomcat.sh # TITRE check_tomcat.sh
# DESCRIPTION : Script de check du nombre de TOMCAT statusOK/KO # DESCRIPTION : Script de check du nombre de TOMCAT statusOK/KO
# USAGE : lancement du script en ajoutant l'argument -a <début du nom des tomcats> (ex pour appli : ./check_tomcat.sh -a app) # USAGE : lancement du script en ajoutant l'argument -a <début du nom des tomcats> (ex pour appli : ./check_tomcat.sh -a app)
# HISTORIQUE : # HISTORIQUE :
# T | Date | Auteur | Description # T | Date | Auteur | Description
#---+------------+------------------------------+------------------------------------ #---+------------+------------------------------+------------------------------------
# A | 05/03/21 | Demonic | Création # A | 05/03/21 | Demonic | Création
# ----------------------------------------------------------------------------------- # -----------------------------------------------------------------------------------
######################################### #########################################
## DECLARATION DES VARIABLES ## ## DECLARATION DES VARIABLES ##
######################################### #########################################
# INITIALISATION DESCRIPTION ALERTE NAGIOS # INITIALISATION DESCRIPTION ALERTE NAGIOS
statusReport="" statusReport=""
# INITIALISATION SEVERITE ALERTE NAGIOS (OK PAR DEFAUT) # INITIALISATION SEVERITE ALERTE NAGIOS (OK PAR DEFAUT)
severityReport=0 severityReport=0
# INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT # INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT
NBNOMINAL="" NBNOMINAL=""
# INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT statusOK # INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT statusOK
NBOK="" NBOK=""
# INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT statusKO # INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT statusKO
NBKO="" NBKO=""
# INITIALISATION VARIABLE DU NOM DE TOMCATS KO # INITIALISATION VARIABLE DU NOM DE TOMCATS KO
LISTEKO="" LISTEKO=""
######################################### #########################################
## DECLARATION DES FONCTIONS ## ## DECLARATION DES FONCTIONS ##
######################################### #########################################
# decho(){ # decho(){
# [ ${debug} -gt 0 ] && echo $* # [ ${debug} -gt 0 ] && echo $*
# } # }
# FONCTION POUR DEFINIR LA SEVERITE DE L'ALERTE # FONCTION POUR DEFINIR LA SEVERITE DE L'ALERTE
setSeverity(){ setSeverity(){
severityToSet=${1} severityToSet=${1}
case ${severityToSet} in case ${severityToSet} in
0)[ ${severityReport} -lt 1 ] && severityReport=0;; 0)[ ${severityReport} -lt 1 ] && severityReport=0;;
1)[ ${severityReport} -lt 2 ] && severityReport=1;; 1)[ ${severityReport} -lt 2 ] && severityReport=1;;
2)severityReport=2;; 2)severityReport=2;;
esac esac
} }
# FONCTION USAGE (option -h) # FONCTION USAGE (option -h)
USAGE(){ USAGE(){
echo "Ce script permet de vérifier le nombre de TOMCAT statusactifs et renvoyer une alerte via Nagios si KO" echo "Ce script permet de vérifier le nombre de TOMCAT statusactifs et renvoyer une alerte via Nagios si KO"
echo "USAGE : check_tomcat.sh -a <3 premières lettres des tomcat>" echo "USAGE : check_tomcat.sh -a <3 premières lettres des tomcat>"
echo "exemple pour appli : check_tomcat.sh -a app" echo "exemple pour appli : check_tomcat.sh -a app"
echo "Info : Le script va filtrer les services via la commande : service app* et compter les lignes actives/inactives" echo "Info : Le script va filtrer les services via la commande : service app* et compter les lignes actives/inactives"
exit 0 exit 0
} }
######################################### #########################################
## RECUPERATION DES ARGUMENTS ## ## RECUPERATION DES ARGUMENTS ##
######################################### #########################################
# ARGUMENT -a : NOM DU TOMCAT # ARGUMENT -a : NOM DU TOMCAT
# ARGUMENT -h : USAGE # ARGUMENT -h : USAGE
# POUR LE -a, AJOUT DE * A LA VARIABLE POUR SORTIR LA TOTALITE DES TOMCATS VOULUS (ex : pour appli, TOMCAT="app*") # POUR LE -a, AJOUT DE * A LA VARIABLE POUR SORTIR LA TOTALITE DES TOMCATS VOULUS (ex : pour appli, TOMCAT="app*")
while getopts ":a:h:" opt; do while getopts ":a:h:" opt; do
case "${opt}" in case "${opt}" in
a) TOMCAT="${OPTARG}*";; a) TOMCAT="${OPTARG}*";;
h) USAGE;; h) USAGE;;
esac esac
done done
######################## ########################
## PROGRAMME ## ## PROGRAMME ##
######################## ########################
# LISTING DU NOMBRE DE TOMCAT ETAT NOMINAL (OK+KO) # LISTING DU NOMBRE DE TOMCAT ETAT NOMINAL (OK+KO)
NBNOMINAL=$(service $TOMCAT status| grep "Active:" | wc -l) NBNOMINAL=$(service $TOMCAT status| grep "Active:" | wc -l)
# LISTING DU NOMBRE DE TOMCAT OK # LISTING DU NOMBRE DE TOMCAT OK
NBOK=$(service $TOMCAT status| grep -i "active (running)" | wc -l) NBOK=$(service $TOMCAT status| grep -i "active (running)" | wc -l)
# CONDITION POUR DETERMINER SI CHECK OK/KO # CONDITION POUR DETERMINER SI CHECK OK/KO
if [ $NBNOMINAL -eq $NBOK ]; then if [ $NBNOMINAL -eq $NBOK ]; then
# CHECK OK # CHECK OK
# PASSAGE VARIABLE NBKO A 0 # PASSAGE VARIABLE NBKO A 0
NBKO="0" NBKO="0"
LISTEOK=$(service $TOMCAT status| grep -B2 -i "running" | grep ".service - " | sed 's/$/<br>/g' | sed ':a;N;$!ba;s/\n//g') LISTEOK=$(service $TOMCAT status| grep -B2 -i "running" | grep ".service - " | sed 's/$/<br>/g' | sed ':a;N;$!ba;s/\n//g')
# FORMATTAGE CONTENU NAGIOS # FORMATTAGE CONTENU NAGIOS
statusReport="<font color="green"><b>TOMCAT OK</b></font><br>Nombre de TOMCAT OK : $NBOK <br>Nombre de TOMCAT KO : $NBKO<br><font color="green">TOMCAT OK : <br>$LISTEOK</font>" statusReport="<font color="green"><b>TOMCAT OK</b></font><br>Nombre de TOMCAT OK : $NBOK <br>Nombre de TOMCAT KO : $NBKO<br><font color="green">TOMCAT OK : <br>$LISTEOK</font>"
else else
# CHECK KO # CHECK KO
# PASSAGE SEVERITE NAGIOS CRITICAL # PASSAGE SEVERITE NAGIOS CRITICAL
setSeverity 2 setSeverity 2
# PASSAGE VARIABLE NBKO A LA BONNE VALEUR # PASSAGE VARIABLE NBKO A LA BONNE VALEUR
NBKO=$(($NBNOMINAL-$NBOK)) NBKO=$(($NBNOMINAL-$NBOK))
# RECUPERATION DES NOMS TOMCATS KO # RECUPERATION DES NOMS TOMCATS KO
LISTEKO=$(service $TOMCAT status| grep -B2 -v "running" | grep ".service - " | sed 's/$/<br>/g' | sed ':a;N;$!ba;s/\n//g') LISTEKO=$(service $TOMCAT status| grep -B2 -v "running" | grep ".service - " | sed 's/$/<br>/g' | sed ':a;N;$!ba;s/\n//g')
# FORMATTAGE CONTENU NAGIOS # FORMATTAGE CONTENU NAGIOS
statusReport="<font color="red"><b>TOMCAT KO</b></font><br>Nombre de TOMCAT OK : $NBOK <br>Nombre de TOMCAT KO : $NBKO<br><font color="red"><b>TOMCAT KO : <br>$LISTEKO</b></font>" statusReport="<font color="red"><b>TOMCAT KO</b></font><br>Nombre de TOMCAT OK : $NBOK <br>Nombre de TOMCAT KO : $NBKO<br><font color="red"><b>TOMCAT KO : <br>$LISTEKO</b></font>"
fi fi
# AFFICHAGE DU CONTENU NAGIOS SI DEBUG # AFFICHAGE DU CONTENU NAGIOS SI DEBUG
# decho "severityReport=${severityReport};statusReport=${statusReport}" # decho "severityReport=${severityReport};statusReport=${statusReport}"
# AFFICHAGE RESULTAT CHECK # AFFICHAGE RESULTAT CHECK
echo "${statusReport}" echo "${statusReport}"
# SORTIE DU SCRIPT AVEC SEVERITE NAGIOS # SORTIE DU SCRIPT AVEC SEVERITE NAGIOS
exit ${severityReport} exit ${severityReport}
# FIN DE SCRIPT # FIN DE SCRIPT

View File

@ -1,81 +1,81 @@
#!/bin/sh #!/bin/sh
# TITRE drive_online.sh # TITRE drive_online.sh
# DESCRIPTION : Script de vérification/passage ONLINE des drives TSM # DESCRIPTION : Script de vérification/passage ONLINE des drives TSM
# EXECUTION : TOUS LES JOURS A ??H VIA AWA - JOB # EXECUTION : TOUS LES JOURS A ??H VIA AWA - JOB
# HISTORIQUE : # HISTORIQUE :
# T | Date | Auteur | Description # T | Date | Auteur | Description
#---+------------+------------------------------+------------------------------------ #---+------------+------------------------------+------------------------------------
# A | 09/03/22 | Demonic | Création # A | 09/03/22 | Demonic | Création
# ----------------------------------------------------------------------------------- # -----------------------------------------------------------------------------------
######################################### #########################################
## DECLARATION DES VARIABLES ## ## DECLARATION DES VARIABLES ##
######################################### #########################################
# IDENTIFIANTS TSM # IDENTIFIANTS TSM
IDTSM="" IDTSM=""
MDPTSM="" MDPTSM=""
# STATUT DES DRIVES # STATUT DES DRIVES
STATUS="" STATUS=""
# LIBRAIRIE CORRSPONDANTE AU DRIVE A TRAITER # LIBRAIRIE CORRSPONDANTE AU DRIVE A TRAITER
LIBRARY="" LIBRARY=""
# DRIVE A TRAITER # DRIVE A TRAITER
DRIVE="" DRIVE=""
######################################### #########################################
## DECLARATION DES FONCTIONS ## ## DECLARATION DES FONCTIONS ##
######################################### #########################################
# FONCTION PERMETTANT DE SIMPLIFIER L'EXECUTION DE LA COMMANDE ADMIN TSM DANS LE SCRIPT # FONCTION PERMETTANT DE SIMPLIFIER L'EXECUTION DE LA COMMANDE ADMIN TSM DANS LE SCRIPT
tsmcmd(){ tsmcmd(){
dsmadmc -id=$IDTSM -pa=$MDPTSM -datao=yes $* dsmadmc -id=$IDTSM -pa=$MDPTSM -datao=yes $*
return $? return $?
} }
######################## ########################
## PROGRAMME ## ## PROGRAMME ##
######################## ########################
# LISTING DES STATUTS DES DRIVES # LISTING DES STATUTS DES DRIVES
echo -e "\nLISTING DES STATUTS EN COURS...." echo -e "\nLISTING DES STATUTS EN COURS...."
# EXECUTION D'UNE REQUETE DB2 POUR LISTER LES DRIVES A L'ETAT DIFFERENT DE ONLINE # EXECUTION D'UNE REQUETE DB2 POUR LISTER LES DRIVES A L'ETAT DIFFERENT DE ONLINE
STATUS="$(tsmcmd -commadelimited "SELECT library_name, drive_name FROM drives WHERE online != 'YES'" | sed -e 's/,/ /g')" STATUS="$(tsmcmd -commadelimited "SELECT library_name, drive_name FROM drives WHERE online != 'YES'" | sed -e 's/,/ /g')"
echo -e "\nLISTING OK" echo -e "\nLISTING OK"
# FIN DU LISTING # FIN DU LISTING
# CONDITION POUR REPASSER LES DRIVES ONLINE # CONDITION POUR REPASSER LES DRIVES ONLINE
# VERIFICATION SI LA VARIABLE STATUS COMPORTE LE CODE ERREUR ANR2034E, CELUI CI CORRESPONDANT A AUCUN DRIVE KO # VERIFICATION SI LA VARIABLE STATUS COMPORTE LE CODE ERREUR ANR2034E, CELUI CI CORRESPONDANT A AUCUN DRIVE KO
if [[ "$STATUS" == *"ANR2034E SELECT: No match found using this criteria."* ]]; then if [[ "$STATUS" == *"ANR2034E SELECT: No match found using this criteria."* ]]; then
# CONDITION OK : TOUS LES DRIVES SONT OK, LE CODE ERREUR EST BIEN AFFICHE DANS LA VARIABLE STATUS # CONDITION OK : TOUS LES DRIVES SONT OK, LE CODE ERREUR EST BIEN AFFICHE DANS LA VARIABLE STATUS
echo -e "\nTOUS LES DRIVES SONT ONLINE\n" echo -e "\nTOUS LES DRIVES SONT ONLINE\n"
else else
# CONDITION KO : 1 OU PLUSIEURS DRIVES SONT KO, ILS SONT LISTE DANS LA VARIABLE STATUS # CONDITION KO : 1 OU PLUSIEURS DRIVES SONT KO, ILS SONT LISTE DANS LA VARIABLE STATUS
# LISTING DES DRIVES KO # LISTING DES DRIVES KO
echo -e "\nLISTE DES DRIVES KO :\n$STATUS\n\nRELANCE DES DRIVES...." echo -e "\nLISTE DES DRIVES KO :\n$STATUS\n\nRELANCE DES DRIVES...."
# PASSAGE ONLINE DES DRIVES KO # PASSAGE ONLINE DES DRIVES KO
# LECTURE LIGNE PAR LIGNE DE LA VARIABLE STATUS POUR RELANCE. 1 LIGNE = 1 DRIVE. CF LISTING CI-DESSUS # LECTURE LIGNE PAR LIGNE DE LA VARIABLE STATUS POUR RELANCE. 1 LIGNE = 1 DRIVE. CF LISTING CI-DESSUS
echo "$STATUS" | while read -r line; do echo "$STATUS" | while read -r line; do
# RECUPERATION DU 1ER CHAMP DE LA LIGNE, CORRESPONDANT A LA LIBRAIRIE DU DRIVE # RECUPERATION DU 1ER CHAMP DE LA LIGNE, CORRESPONDANT A LA LIBRAIRIE DU DRIVE
LIBRARY=$(echo "$line" | awk '{print $1}') LIBRARY=$(echo "$line" | awk '{print $1}')
# RECUPERATION DU 2EME CHAMP DE LA LIGNE, CORRESPONDANT AU DRIVE # RECUPERATION DU 2EME CHAMP DE LA LIGNE, CORRESPONDANT AU DRIVE
DRIVE=$(echo "$line" | awk '{print $2}') DRIVE=$(echo "$line" | awk '{print $2}')
# PASSAGE ONLINE DU DRIVE # PASSAGE ONLINE DU DRIVE
echo -e "\nPASSAGE ONLINE DU $DRIVE DE LA LIBRAIRIE $LIBRARY\n" echo -e "\nPASSAGE ONLINE DU $DRIVE DE LA LIBRAIRIE $LIBRARY\n"
tsmcmd update drive $LIBRARY $DRIVE online=yes tsmcmd update drive $LIBRARY $DRIVE online=yes
echo -e "UPDATE EN COURS\n" echo -e "UPDATE EN COURS\n"
# FIN DE LA BOUCLE # FIN DE LA BOUCLE
done done
# FIN DE LA CONDITION # FIN DE LA CONDITION
fi fi
# FIN DE SCRIPT # FIN DE SCRIPT

View File

@ -1,85 +1,85 @@
#!/bin/sh #!/bin/sh
# TITRE path_online.sh # TITRE path_online.sh
# DESCRIPTION : Script de vérification/passage ONLINE des paths TSM # DESCRIPTION : Script de vérification/passage ONLINE des paths TSM
# EXECUTION : TOUS LES JOURS A ??H VIA AWA - JOB # EXECUTION : TOUS LES JOURS A ??H VIA AWA - JOB
# HISTORIQUE : # HISTORIQUE :
# T | Date | Auteur | Description # T | Date | Auteur | Description
#---+------------+------------------------------+------------------------------------ #---+------------+------------------------------+------------------------------------
# A | 09/03/22 | Demonic | Création # A | 09/03/22 | Demonic | Création
# ----------------------------------------------------------------------------------- # -----------------------------------------------------------------------------------
######################################### #########################################
## DECLARATION DES VARIABLES ## ## DECLARATION DES VARIABLES ##
######################################### #########################################
# IDENTIFIANTS TSM # IDENTIFIANTS TSM
IDTSM="" IDTSM=""
MDPTSM="" MDPTSM=""
# STATUT DES PATHS # STATUT DES PATHS
STATUS="" STATUS=""
# SOURCE DU PATH A TRAITER - SRV TSM # SOURCE DU PATH A TRAITER - SRV TSM
SOURCE="" SOURCE=""
# DESTINATION DU PATH A TRAITER - DRIVE # DESTINATION DU PATH A TRAITER - DRIVE
DESTINATION="" DESTINATION=""
# LIBRAIRIE CORRSPONDANTE AU PATH A TRAITER # LIBRAIRIE CORRSPONDANTE AU PATH A TRAITER
LIBRARY="" LIBRARY=""
######################################### #########################################
## DECLARATION DES FONCTIONS ## ## DECLARATION DES FONCTIONS ##
######################################### #########################################
# FONCTION PERMETTANT DE SIMPLIFIER L'EXECUTION DE LA COMMANDE ADMIN TSM DANS LE SCRIPT # FONCTION PERMETTANT DE SIMPLIFIER L'EXECUTION DE LA COMMANDE ADMIN TSM DANS LE SCRIPT
tsmcmd(){ tsmcmd(){
dsmadmc -id=$IDTSM -pa=$MDPTSM -datao=yes $* dsmadmc -id=$IDTSM -pa=$MDPTSM -datao=yes $*
return $? return $?
} }
######################## ########################
## PROGRAMME ## ## PROGRAMME ##
######################## ########################
# LISTING DES STATUTS DES PATHS # LISTING DES STATUTS DES PATHS
echo -e "\nLISTING DES STATUTS EN COURS...." echo -e "\nLISTING DES STATUTS EN COURS...."
# EXECUTION D'UNE REQUETE DB2 POUR LISTER LES PATHS A L'ETAT DIFFERENT DE ONLINE # EXECUTION D'UNE REQUETE DB2 POUR LISTER LES PATHS A L'ETAT DIFFERENT DE ONLINE
STATUS="$(tsmcmd -commadelimited "SELECT source_name, destination_name, library_name FROM paths WHERE online != 'YES'" | sed -e 's/,/ /g')" STATUS="$(tsmcmd -commadelimited "SELECT source_name, destination_name, library_name FROM paths WHERE online != 'YES'" | sed -e 's/,/ /g')"
echo -e "\nLISTING OK" echo -e "\nLISTING OK"
# FIN DU LISTING # FIN DU LISTING
# CONDITION POUR REPASSER LES PATHS ONLINE # CONDITION POUR REPASSER LES PATHS ONLINE
# VERIFICATION SI LA VARIABLE STATUS COMPORTE LE CODE ERREUR ANR2034E, CELUI CI CORRESPONDANT A AUCUN PATHS KO # VERIFICATION SI LA VARIABLE STATUS COMPORTE LE CODE ERREUR ANR2034E, CELUI CI CORRESPONDANT A AUCUN PATHS KO
if [[ "$STATUS" == *"ANR2034E SELECT: No match found using this criteria."* ]]; then if [[ "$STATUS" == *"ANR2034E SELECT: No match found using this criteria."* ]]; then
# CONDITION OK : TOUS LES PATHS SONT OK, LE CODE ERREUR EST BIEN AFFICHE DANS LA VARIABLE STATUS # CONDITION OK : TOUS LES PATHS SONT OK, LE CODE ERREUR EST BIEN AFFICHE DANS LA VARIABLE STATUS
echo -e "\nTOUS LES PATHS SONT ONLINE\n" echo -e "\nTOUS LES PATHS SONT ONLINE\n"
else else
# CONDITION KO : 1 OU PLUSIEURS PATHS SONT KO, ILS SONT LISTES DANS LA VARIABLE STATUS # CONDITION KO : 1 OU PLUSIEURS PATHS SONT KO, ILS SONT LISTES DANS LA VARIABLE STATUS
# LISTING DES PATHS KO # LISTING DES PATHS KO
echo -e "\nLISTE DES PATHS KO :\n$STATUS\n\nRELANCE DES PATHS...." echo -e "\nLISTE DES PATHS KO :\n$STATUS\n\nRELANCE DES PATHS...."
# PASSAGE ONLINE DES PATHS KO # PASSAGE ONLINE DES PATHS KO
# LECTURE LIGNE PAR LIGNE DE LA VARIABLE STATUS POUR RELANCE. 1 LIGNE = 1 PATH. CF LISTING CI-DESSUS # LECTURE LIGNE PAR LIGNE DE LA VARIABLE STATUS POUR RELANCE. 1 LIGNE = 1 PATH. CF LISTING CI-DESSUS
echo "$STATUS" | while read -r line; do echo "$STATUS" | while read -r line; do
# RECUPERATION DU 1ER CHAMP DE LA LIGNE, CORRESPONDANT A LA LIBRAIRIE DU DRIVE # RECUPERATION DU 1ER CHAMP DE LA LIGNE, CORRESPONDANT A LA LIBRAIRIE DU DRIVE
SOURCE=$(echo "$line" | awk '{print $1}') SOURCE=$(echo "$line" | awk '{print $1}')
# RECUPERATION DU 2EME CHAMP DE LA LIGNE, CORRESPONDANT AU DRIVE # RECUPERATION DU 2EME CHAMP DE LA LIGNE, CORRESPONDANT AU DRIVE
DESTINATION=$(echo "$line" | awk '{print $2}') DESTINATION=$(echo "$line" | awk '{print $2}')
# RECUPERATION DU 2EME CHAMP DE LA LIGNE, CORRESPONDANT AU DRIVE # RECUPERATION DU 2EME CHAMP DE LA LIGNE, CORRESPONDANT AU DRIVE
LIBRARY=$(echo "$line" | awk '{print $3}') LIBRARY=$(echo "$line" | awk '{print $3}')
# PASSAGE ONLINE DU DRIVE # PASSAGE ONLINE DU DRIVE
echo -e "\nPASSAGE ONLINE DU PATH $SOURCE => $DESTINATION DE LA LIBRAIRIE $LIBRARY\n" echo -e "\nPASSAGE ONLINE DU PATH $SOURCE => $DESTINATION DE LA LIBRAIRIE $LIBRARY\n"
tsmcmd update path $SOURCE $DESTINATION srctype=server desttype=drive library=$LIBRARY online=yes tsmcmd update path $SOURCE $DESTINATION srctype=server desttype=drive library=$LIBRARY online=yes
echo -e "UPDATE EN COURS\n" echo -e "UPDATE EN COURS\n"
# FIN DE LA BOUCLE # FIN DE LA BOUCLE
done done
# FIN DE LA CONDITION # FIN DE LA CONDITION
fi fi
# FIN DE SCRIPT # FIN DE SCRIPT