diff --git a/SHELL/tsm_drive_online.sh b/SHELL/tsm_drive_online.sh new file mode 100644 index 0000000..ce85cd9 --- /dev/null +++ b/SHELL/tsm_drive_online.sh @@ -0,0 +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="" +# STATUTS 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 $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