81 lines
2.8 KiB
Bash
81 lines
2.8 KiB
Bash
#!/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 |