From f90b4d236ca230a41874cdfc384a0feef559805a Mon Sep 17 00:00:00 2001 From: Demonic Date: Thu, 10 Mar 2022 15:35:55 +0100 Subject: [PATCH] =?UTF-8?q?R=C3=A9organisation=20repo=20SHELL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SHELL/{ => NAGIOS}/nagios_check_nbproc.sh | 200 +++++++++---------- SHELL/{ => NAGIOS}/nagios_check_tomcat.sh | 226 +++++++++++----------- SHELL/{ => TSM}/tsm_drive_online.sh | 160 +++++++-------- SHELL/{ => TSM}/tsm_path_online.sh | 168 ++++++++-------- 4 files changed, 377 insertions(+), 377 deletions(-) rename SHELL/{ => NAGIOS}/nagios_check_nbproc.sh (96%) rename SHELL/{ => NAGIOS}/nagios_check_tomcat.sh (97%) rename SHELL/{ => TSM}/tsm_drive_online.sh (97%) rename SHELL/{ => TSM}/tsm_path_online.sh (97%) diff --git a/SHELL/nagios_check_nbproc.sh b/SHELL/NAGIOS/nagios_check_nbproc.sh similarity index 96% rename from SHELL/nagios_check_nbproc.sh rename to SHELL/NAGIOS/nagios_check_nbproc.sh index ab7e422..6235a52 100644 --- a/SHELL/nagios_check_nbproc.sh +++ b/SHELL/NAGIOS/nagios_check_nbproc.sh @@ -1,100 +1,100 @@ -#!/bin/ksh - -# TITRE check_nbproc.sh -# DESCRIPTION : Script de check du nombre de processus -# USAGE : lancement du script en ajoutant l'argument -p -c -# HISTORIQUE : -# T | Date | Auteur | Description -#---+------------+------------------------------+------------------------------------ -# A | 16/07/21 | Demonic | Création -# ----------------------------------------------------------------------------------- - - -######################################### -## DECLARATION DES VARIABLES ## -######################################### - -# INITIALISATION DESCRIPTION ALERTE NAGIOS -statusReport="" -# INITIALISATION SEVERITE ALERTE NAGIOS (OK PAR DEFAUT) -severityReport=0 -# INITIALISATION VARIABLE DU NOM DU PROCESSUS -NOMPROC="" -# INITIALISATION VARIABLE DU NOMBRE TOTAL DE PROCESSUS VOULU -NBOK="" -# INITIALISATION VARIABLE DU NOMBRE TOTAL DE PROCESSUS PRESENT -NBPROC="" - -######################################### -## DECLARATION DES FONCTIONS ## -######################################### - -# decho(){ -# [ ${debug} -gt 0 ] && echo $* -# } - -# FONCTION POUR DEFINIR LA SEVERITE DE L'ALERTE -setSeverity(){ - severityToSet=${1} - case ${severityToSet} in - 0)[ ${severityReport} -lt 1 ] && severityReport=0;; - 1)[ ${severityReport} -lt 2 ] && severityReport=1;; - 2) severityReport=2;; - esac -} - -# FONCTION USAGE (option -h) -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 "USAGE : check_nbproc.sh -p -c " - exit 0 -} - -######################################### -## RECUPERATION DES ARGUMENTS ## -######################################### - -# ARGUMENT -p : NOM DU PROCESSUS -# ARGUMENT -c : NOMBRE DE PROCESS VOULU -# ARGUMENT -h : USAGE - -while getopts ":p:c:h:" opt; do - case "${opt}" in - p) NOMPROC="${OPTARG}";; - c) NBOK="${OPTARG}";; - h) USAGE;; - esac -done - -######################## -## PROGRAMME ## -######################## - -# LISTING DU NOMBRE DE PROCESSUS -NBPROC=$(ps -ef | grep -i "$NOMPROC" | grep -v grep | grep -v "check_" | wc -l) - -# CONDITION POUR DETERMINER SI CHECK OK/KO -if [ $NBPROC -eq $NBOK ]; then - # CHECK OK - # FORMATTAGE CONTENU NAGIOS - statusReport="Nombre de processus $NOMPROC OK" - -else - # CHECK KO - # PASSAGE SEVERITE NAGIOS CRITICAL - setSeverity 2 - # FORMATTAGE CONTENU NAGIOS - statusReport="Nombre de processus $NOMPROC KO | $NBPROC OK pour $NBOK voulu Processus KO de 23h à 7h, ne pas prendre en compte dans cette période." - -fi - -# AFFICHAGE DU CONTENU NAGIOS SI DEBUG -# decho "severityReport=${severityReport};statusReport=${statusReport}" - -# AFFICHAGE RESULTAT CHECK -echo "${statusReport}" - -# SORTIE DU SCRIPT AVEC SEVERITE NAGIOS -exit ${severityReport} - -# FIN DE SCRIPT +#!/bin/ksh + +# TITRE check_nbproc.sh +# DESCRIPTION : Script de check du nombre de processus +# USAGE : lancement du script en ajoutant l'argument -p -c +# HISTORIQUE : +# T | Date | Auteur | Description +#---+------------+------------------------------+------------------------------------ +# A | 16/07/21 | Demonic | Création +# ----------------------------------------------------------------------------------- + + +######################################### +## DECLARATION DES VARIABLES ## +######################################### + +# INITIALISATION DESCRIPTION ALERTE NAGIOS +statusReport="" +# INITIALISATION SEVERITE ALERTE NAGIOS (OK PAR DEFAUT) +severityReport=0 +# INITIALISATION VARIABLE DU NOM DU PROCESSUS +NOMPROC="" +# INITIALISATION VARIABLE DU NOMBRE TOTAL DE PROCESSUS VOULU +NBOK="" +# INITIALISATION VARIABLE DU NOMBRE TOTAL DE PROCESSUS PRESENT +NBPROC="" + +######################################### +## DECLARATION DES FONCTIONS ## +######################################### + +# decho(){ +# [ ${debug} -gt 0 ] && echo $* +# } + +# FONCTION POUR DEFINIR LA SEVERITE DE L'ALERTE +setSeverity(){ + severityToSet=${1} + case ${severityToSet} in + 0)[ ${severityReport} -lt 1 ] && severityReport=0;; + 1)[ ${severityReport} -lt 2 ] && severityReport=1;; + 2) severityReport=2;; + esac +} + +# FONCTION USAGE (option -h) +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 "USAGE : check_nbproc.sh -p -c " + exit 0 +} + +######################################### +## RECUPERATION DES ARGUMENTS ## +######################################### + +# ARGUMENT -p : NOM DU PROCESSUS +# ARGUMENT -c : NOMBRE DE PROCESS VOULU +# ARGUMENT -h : USAGE + +while getopts ":p:c:h:" opt; do + case "${opt}" in + p) NOMPROC="${OPTARG}";; + c) NBOK="${OPTARG}";; + h) USAGE;; + esac +done + +######################## +## PROGRAMME ## +######################## + +# LISTING DU NOMBRE DE PROCESSUS +NBPROC=$(ps -ef | grep -i "$NOMPROC" | grep -v grep | grep -v "check_" | wc -l) + +# CONDITION POUR DETERMINER SI CHECK OK/KO +if [ $NBPROC -eq $NBOK ]; then + # CHECK OK + # FORMATTAGE CONTENU NAGIOS + statusReport="Nombre de processus $NOMPROC OK" + +else + # CHECK KO + # PASSAGE SEVERITE NAGIOS CRITICAL + setSeverity 2 + # FORMATTAGE CONTENU NAGIOS + statusReport="Nombre de processus $NOMPROC KO | $NBPROC OK pour $NBOK voulu Processus KO de 23h à 7h, ne pas prendre en compte dans cette période." + +fi + +# AFFICHAGE DU CONTENU NAGIOS SI DEBUG +# decho "severityReport=${severityReport};statusReport=${statusReport}" + +# AFFICHAGE RESULTAT CHECK +echo "${statusReport}" + +# SORTIE DU SCRIPT AVEC SEVERITE NAGIOS +exit ${severityReport} + +# FIN DE SCRIPT diff --git a/SHELL/nagios_check_tomcat.sh b/SHELL/NAGIOS/nagios_check_tomcat.sh similarity index 97% rename from SHELL/nagios_check_tomcat.sh rename to SHELL/NAGIOS/nagios_check_tomcat.sh index 7a8bb5d..2f8cbbb 100644 --- a/SHELL/nagios_check_tomcat.sh +++ b/SHELL/NAGIOS/nagios_check_tomcat.sh @@ -1,113 +1,113 @@ -#!/bin/bash - -# TITRE check_tomcat.sh -# DESCRIPTION : Script de check du nombre de TOMCAT statusOK/KO -# USAGE : lancement du script en ajoutant l'argument -a (ex pour appli : ./check_tomcat.sh -a app) -# HISTORIQUE : -# T | Date | Auteur | Description -#---+------------+------------------------------+------------------------------------ -# A | 05/03/21 | Demonic | Création -# ----------------------------------------------------------------------------------- - - -######################################### -## DECLARATION DES VARIABLES ## -######################################### - -# INITIALISATION DESCRIPTION ALERTE NAGIOS -statusReport="" -# INITIALISATION SEVERITE ALERTE NAGIOS (OK PAR DEFAUT) -severityReport=0 -# INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT -NBNOMINAL="" -# INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT statusOK -NBOK="" -# INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT statusKO -NBKO="" -# INITIALISATION VARIABLE DU NOM DE TOMCATS KO -LISTEKO="" - -######################################### -## DECLARATION DES FONCTIONS ## -######################################### - -# decho(){ -# [ ${debug} -gt 0 ] && echo $* -# } - -# FONCTION POUR DEFINIR LA SEVERITE DE L'ALERTE -setSeverity(){ - severityToSet=${1} - case ${severityToSet} in - 0)[ ${severityReport} -lt 1 ] && severityReport=0;; - 1)[ ${severityReport} -lt 2 ] && severityReport=1;; - 2)severityReport=2;; - esac -} - -# FONCTION USAGE (option -h) -USAGE(){ - 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 "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" - exit 0 -} - -######################################### -## RECUPERATION DES ARGUMENTS ## -######################################### - -# ARGUMENT -a : NOM DU TOMCAT -# ARGUMENT -h : USAGE -# 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 - case "${opt}" in - a) TOMCAT="${OPTARG}*";; - h) USAGE;; - esac -done - -######################## -## PROGRAMME ## -######################## - -# LISTING DU NOMBRE DE TOMCAT ETAT NOMINAL (OK+KO) -NBNOMINAL=$(service $TOMCAT status| grep "Active:" | wc -l) - -# LISTING DU NOMBRE DE TOMCAT OK -NBOK=$(service $TOMCAT status| grep -i "active (running)" | wc -l) - -# CONDITION POUR DETERMINER SI CHECK OK/KO -if [ $NBNOMINAL -eq $NBOK ]; then - # CHECK OK - # PASSAGE VARIABLE NBKO A 0 - NBKO="0" - LISTEOK=$(service $TOMCAT status| grep -B2 -i "running" | grep ".service - " | sed 's/$/
/g' | sed ':a;N;$!ba;s/\n//g') - # FORMATTAGE CONTENU NAGIOS - statusReport="TOMCAT OK
Nombre de TOMCAT OK : $NBOK
Nombre de TOMCAT KO : $NBKO
TOMCAT OK :
$LISTEOK
" - -else - # CHECK KO - # PASSAGE SEVERITE NAGIOS CRITICAL - setSeverity 2 - # PASSAGE VARIABLE NBKO A LA BONNE VALEUR - NBKO=$(($NBNOMINAL-$NBOK)) - # RECUPERATION DES NOMS TOMCATS KO - LISTEKO=$(service $TOMCAT status| grep -B2 -v "running" | grep ".service - " | sed 's/$/
/g' | sed ':a;N;$!ba;s/\n//g') - # FORMATTAGE CONTENU NAGIOS - statusReport="TOMCAT KO
Nombre de TOMCAT OK : $NBOK
Nombre de TOMCAT KO : $NBKO
TOMCAT KO :
$LISTEKO
" - -fi - -# AFFICHAGE DU CONTENU NAGIOS SI DEBUG -# decho "severityReport=${severityReport};statusReport=${statusReport}" - -# AFFICHAGE RESULTAT CHECK -echo "${statusReport}" - -# SORTIE DU SCRIPT AVEC SEVERITE NAGIOS -exit ${severityReport} - -# FIN DE SCRIPT +#!/bin/bash + +# TITRE check_tomcat.sh +# DESCRIPTION : Script de check du nombre de TOMCAT statusOK/KO +# USAGE : lancement du script en ajoutant l'argument -a (ex pour appli : ./check_tomcat.sh -a app) +# HISTORIQUE : +# T | Date | Auteur | Description +#---+------------+------------------------------+------------------------------------ +# A | 05/03/21 | Demonic | Création +# ----------------------------------------------------------------------------------- + + +######################################### +## DECLARATION DES VARIABLES ## +######################################### + +# INITIALISATION DESCRIPTION ALERTE NAGIOS +statusReport="" +# INITIALISATION SEVERITE ALERTE NAGIOS (OK PAR DEFAUT) +severityReport=0 +# INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT +NBNOMINAL="" +# INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT statusOK +NBOK="" +# INITIALISATION VARIABLE DU NOMBRE TOTAL DE TOMCAT statusKO +NBKO="" +# INITIALISATION VARIABLE DU NOM DE TOMCATS KO +LISTEKO="" + +######################################### +## DECLARATION DES FONCTIONS ## +######################################### + +# decho(){ +# [ ${debug} -gt 0 ] && echo $* +# } + +# FONCTION POUR DEFINIR LA SEVERITE DE L'ALERTE +setSeverity(){ + severityToSet=${1} + case ${severityToSet} in + 0)[ ${severityReport} -lt 1 ] && severityReport=0;; + 1)[ ${severityReport} -lt 2 ] && severityReport=1;; + 2)severityReport=2;; + esac +} + +# FONCTION USAGE (option -h) +USAGE(){ + 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 "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" + exit 0 +} + +######################################### +## RECUPERATION DES ARGUMENTS ## +######################################### + +# ARGUMENT -a : NOM DU TOMCAT +# ARGUMENT -h : USAGE +# 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 + case "${opt}" in + a) TOMCAT="${OPTARG}*";; + h) USAGE;; + esac +done + +######################## +## PROGRAMME ## +######################## + +# LISTING DU NOMBRE DE TOMCAT ETAT NOMINAL (OK+KO) +NBNOMINAL=$(service $TOMCAT status| grep "Active:" | wc -l) + +# LISTING DU NOMBRE DE TOMCAT OK +NBOK=$(service $TOMCAT status| grep -i "active (running)" | wc -l) + +# CONDITION POUR DETERMINER SI CHECK OK/KO +if [ $NBNOMINAL -eq $NBOK ]; then + # CHECK OK + # PASSAGE VARIABLE NBKO A 0 + NBKO="0" + LISTEOK=$(service $TOMCAT status| grep -B2 -i "running" | grep ".service - " | sed 's/$/
/g' | sed ':a;N;$!ba;s/\n//g') + # FORMATTAGE CONTENU NAGIOS + statusReport="TOMCAT OK
Nombre de TOMCAT OK : $NBOK
Nombre de TOMCAT KO : $NBKO
TOMCAT OK :
$LISTEOK
" + +else + # CHECK KO + # PASSAGE SEVERITE NAGIOS CRITICAL + setSeverity 2 + # PASSAGE VARIABLE NBKO A LA BONNE VALEUR + NBKO=$(($NBNOMINAL-$NBOK)) + # RECUPERATION DES NOMS TOMCATS KO + LISTEKO=$(service $TOMCAT status| grep -B2 -v "running" | grep ".service - " | sed 's/$/
/g' | sed ':a;N;$!ba;s/\n//g') + # FORMATTAGE CONTENU NAGIOS + statusReport="TOMCAT KO
Nombre de TOMCAT OK : $NBOK
Nombre de TOMCAT KO : $NBKO
TOMCAT KO :
$LISTEKO
" + +fi + +# AFFICHAGE DU CONTENU NAGIOS SI DEBUG +# decho "severityReport=${severityReport};statusReport=${statusReport}" + +# AFFICHAGE RESULTAT CHECK +echo "${statusReport}" + +# SORTIE DU SCRIPT AVEC SEVERITE NAGIOS +exit ${severityReport} + +# FIN DE SCRIPT diff --git a/SHELL/tsm_drive_online.sh b/SHELL/TSM/tsm_drive_online.sh similarity index 97% rename from SHELL/tsm_drive_online.sh rename to SHELL/TSM/tsm_drive_online.sh index c5982a0..6cfeb5e 100644 --- a/SHELL/tsm_drive_online.sh +++ b/SHELL/TSM/tsm_drive_online.sh @@ -1,81 +1,81 @@ -#!/bin/sh - -# TITRE drive_online.sh -# DESCRIPTION : Script de vérification/passage ONLINE des drives TSM -# EXECUTION : TOUS LES JOURS A ??H VIA AWA - JOB -# HISTORIQUE : -# T | Date | Auteur | Description -#---+------------+------------------------------+------------------------------------ -# A | 09/03/22 | Demonic | Création -# ----------------------------------------------------------------------------------- - -######################################### -## DECLARATION DES VARIABLES ## -######################################### - -# IDENTIFIANTS TSM -IDTSM="" -MDPTSM="" -# STATUT DES DRIVES -STATUS="" -# LIBRAIRIE CORRSPONDANTE AU DRIVE A TRAITER -LIBRARY="" -# DRIVE A TRAITER -DRIVE="" - -######################################### -## DECLARATION DES FONCTIONS ## -######################################### - -# FONCTION PERMETTANT DE SIMPLIFIER L'EXECUTION DE LA COMMANDE ADMIN TSM DANS LE SCRIPT -tsmcmd(){ -dsmadmc -id=$IDTSM -pa=$MDPTSM -datao=yes $* -return $? -} - -######################## -## PROGRAMME ## -######################## - -# LISTING DES STATUTS DES DRIVES -echo -e "\nLISTING DES STATUTS EN COURS...." - -# 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')" - -echo -e "\nLISTING OK" -# FIN DU LISTING - -# CONDITION POUR REPASSER LES DRIVES ONLINE -# 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 - - # 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" - -else - - # CONDITION KO : 1 OU PLUSIEURS DRIVES SONT KO, ILS SONT LISTE DANS LA VARIABLE STATUS - # LISTING DES DRIVES KO - echo -e "\nLISTE DES DRIVES KO :\n$STATUS\n\nRELANCE DES DRIVES...." - - # PASSAGE ONLINE DES DRIVES KO - # 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 - - # RECUPERATION DU 1ER CHAMP DE LA LIGNE, CORRESPONDANT A LA LIBRAIRIE DU DRIVE - LIBRARY=$(echo "$line" | awk '{print $1}') - # RECUPERATION DU 2EME CHAMP DE LA LIGNE, CORRESPONDANT AU DRIVE - DRIVE=$(echo "$line" | awk '{print $2}') - - # PASSAGE ONLINE DU DRIVE - echo -e "\nPASSAGE ONLINE DU $DRIVE DE LA LIBRAIRIE $LIBRARY\n" - tsmcmd update drive $LIBRARY $DRIVE online=yes - echo -e "UPDATE EN COURS\n" - - # FIN DE LA BOUCLE - done - # FIN DE LA CONDITION -fi - +#!/bin/sh + +# TITRE drive_online.sh +# DESCRIPTION : Script de vérification/passage ONLINE des drives TSM +# EXECUTION : TOUS LES JOURS A ??H VIA AWA - JOB +# HISTORIQUE : +# T | Date | Auteur | Description +#---+------------+------------------------------+------------------------------------ +# A | 09/03/22 | Demonic | Création +# ----------------------------------------------------------------------------------- + +######################################### +## DECLARATION DES VARIABLES ## +######################################### + +# IDENTIFIANTS TSM +IDTSM="" +MDPTSM="" +# STATUT DES DRIVES +STATUS="" +# LIBRAIRIE CORRSPONDANTE AU DRIVE A TRAITER +LIBRARY="" +# DRIVE A TRAITER +DRIVE="" + +######################################### +## DECLARATION DES FONCTIONS ## +######################################### + +# FONCTION PERMETTANT DE SIMPLIFIER L'EXECUTION DE LA COMMANDE ADMIN TSM DANS LE SCRIPT +tsmcmd(){ +dsmadmc -id=$IDTSM -pa=$MDPTSM -datao=yes $* +return $? +} + +######################## +## PROGRAMME ## +######################## + +# LISTING DES STATUTS DES DRIVES +echo -e "\nLISTING DES STATUTS EN COURS...." + +# 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')" + +echo -e "\nLISTING OK" +# FIN DU LISTING + +# CONDITION POUR REPASSER LES DRIVES ONLINE +# 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 + + # 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" + +else + + # CONDITION KO : 1 OU PLUSIEURS DRIVES SONT KO, ILS SONT LISTE DANS LA VARIABLE STATUS + # LISTING DES DRIVES KO + echo -e "\nLISTE DES DRIVES KO :\n$STATUS\n\nRELANCE DES DRIVES...." + + # PASSAGE ONLINE DES DRIVES KO + # 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 + + # RECUPERATION DU 1ER CHAMP DE LA LIGNE, CORRESPONDANT A LA LIBRAIRIE DU DRIVE + LIBRARY=$(echo "$line" | awk '{print $1}') + # RECUPERATION DU 2EME CHAMP DE LA LIGNE, CORRESPONDANT AU DRIVE + DRIVE=$(echo "$line" | awk '{print $2}') + + # PASSAGE ONLINE DU DRIVE + echo -e "\nPASSAGE ONLINE DU $DRIVE DE LA LIBRAIRIE $LIBRARY\n" + tsmcmd update drive $LIBRARY $DRIVE online=yes + echo -e "UPDATE EN COURS\n" + + # FIN DE LA BOUCLE + done + # FIN DE LA CONDITION +fi + # FIN DE SCRIPT \ No newline at end of file diff --git a/SHELL/tsm_path_online.sh b/SHELL/TSM/tsm_path_online.sh similarity index 97% rename from SHELL/tsm_path_online.sh rename to SHELL/TSM/tsm_path_online.sh index 1f8bffa..d5c2185 100644 --- a/SHELL/tsm_path_online.sh +++ b/SHELL/TSM/tsm_path_online.sh @@ -1,85 +1,85 @@ -#!/bin/sh - -# TITRE path_online.sh -# DESCRIPTION : Script de vérification/passage ONLINE des paths TSM -# EXECUTION : TOUS LES JOURS A ??H VIA AWA - JOB -# HISTORIQUE : -# T | Date | Auteur | Description -#---+------------+------------------------------+------------------------------------ -# A | 09/03/22 | Demonic | Création -# ----------------------------------------------------------------------------------- - -######################################### -## DECLARATION DES VARIABLES ## -######################################### - -# IDENTIFIANTS TSM -IDTSM="" -MDPTSM="" -# STATUT DES PATHS -STATUS="" -# SOURCE DU PATH A TRAITER - SRV TSM -SOURCE="" -# DESTINATION DU PATH A TRAITER - DRIVE -DESTINATION="" -# LIBRAIRIE CORRSPONDANTE AU PATH A TRAITER -LIBRARY="" - -######################################### -## DECLARATION DES FONCTIONS ## -######################################### - -# FONCTION PERMETTANT DE SIMPLIFIER L'EXECUTION DE LA COMMANDE ADMIN TSM DANS LE SCRIPT -tsmcmd(){ -dsmadmc -id=$IDTSM -pa=$MDPTSM -datao=yes $* -return $? -} - -######################## -## PROGRAMME ## -######################## - -# LISTING DES STATUTS DES PATHS -echo -e "\nLISTING DES STATUTS EN COURS...." - -# 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')" - -echo -e "\nLISTING OK" -# FIN DU LISTING - -# CONDITION POUR REPASSER LES PATHS ONLINE -# 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 - - # 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" - -else - - # CONDITION KO : 1 OU PLUSIEURS PATHS SONT KO, ILS SONT LISTES DANS LA VARIABLE STATUS - # LISTING DES PATHS KO - echo -e "\nLISTE DES PATHS KO :\n$STATUS\n\nRELANCE DES PATHS...." - - # PASSAGE ONLINE DES PATHS KO - # 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 - - # RECUPERATION DU 1ER CHAMP DE LA LIGNE, CORRESPONDANT A LA LIBRAIRIE DU DRIVE - SOURCE=$(echo "$line" | awk '{print $1}') - # RECUPERATION DU 2EME CHAMP DE LA LIGNE, CORRESPONDANT AU DRIVE - DESTINATION=$(echo "$line" | awk '{print $2}') - # RECUPERATION DU 2EME CHAMP DE LA LIGNE, CORRESPONDANT AU DRIVE - LIBRARY=$(echo "$line" | awk '{print $3}') - - # PASSAGE ONLINE DU DRIVE - 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 - echo -e "UPDATE EN COURS\n" - - # FIN DE LA BOUCLE - done - # FIN DE LA CONDITION -fi - +#!/bin/sh + +# TITRE path_online.sh +# DESCRIPTION : Script de vérification/passage ONLINE des paths TSM +# EXECUTION : TOUS LES JOURS A ??H VIA AWA - JOB +# HISTORIQUE : +# T | Date | Auteur | Description +#---+------------+------------------------------+------------------------------------ +# A | 09/03/22 | Demonic | Création +# ----------------------------------------------------------------------------------- + +######################################### +## DECLARATION DES VARIABLES ## +######################################### + +# IDENTIFIANTS TSM +IDTSM="" +MDPTSM="" +# STATUT DES PATHS +STATUS="" +# SOURCE DU PATH A TRAITER - SRV TSM +SOURCE="" +# DESTINATION DU PATH A TRAITER - DRIVE +DESTINATION="" +# LIBRAIRIE CORRSPONDANTE AU PATH A TRAITER +LIBRARY="" + +######################################### +## DECLARATION DES FONCTIONS ## +######################################### + +# FONCTION PERMETTANT DE SIMPLIFIER L'EXECUTION DE LA COMMANDE ADMIN TSM DANS LE SCRIPT +tsmcmd(){ +dsmadmc -id=$IDTSM -pa=$MDPTSM -datao=yes $* +return $? +} + +######################## +## PROGRAMME ## +######################## + +# LISTING DES STATUTS DES PATHS +echo -e "\nLISTING DES STATUTS EN COURS...." + +# 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')" + +echo -e "\nLISTING OK" +# FIN DU LISTING + +# CONDITION POUR REPASSER LES PATHS ONLINE +# 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 + + # 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" + +else + + # CONDITION KO : 1 OU PLUSIEURS PATHS SONT KO, ILS SONT LISTES DANS LA VARIABLE STATUS + # LISTING DES PATHS KO + echo -e "\nLISTE DES PATHS KO :\n$STATUS\n\nRELANCE DES PATHS...." + + # PASSAGE ONLINE DES PATHS KO + # 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 + + # RECUPERATION DU 1ER CHAMP DE LA LIGNE, CORRESPONDANT A LA LIBRAIRIE DU DRIVE + SOURCE=$(echo "$line" | awk '{print $1}') + # RECUPERATION DU 2EME CHAMP DE LA LIGNE, CORRESPONDANT AU DRIVE + DESTINATION=$(echo "$line" | awk '{print $2}') + # RECUPERATION DU 2EME CHAMP DE LA LIGNE, CORRESPONDANT AU DRIVE + LIBRARY=$(echo "$line" | awk '{print $3}') + + # PASSAGE ONLINE DU DRIVE + 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 + echo -e "UPDATE EN COURS\n" + + # FIN DE LA BOUCLE + done + # FIN DE LA CONDITION +fi + # FIN DE SCRIPT \ No newline at end of file