Corrélation entre les jobs VTOM et les policy netbackup
Corrélation entre les jobs VTOM et les policy netbackup
But :
Vérifier qu’on a bien autant de jobs VTOM que de couple Netbackup POLICY / SCHEDULE / HOSTS
Méthode :
Je n’ai pas trouvé comment faire un dump des policies (stratégies de sauvegardes Netbackup) en XML ou autre format facilement exploitable.
Il y a bien le bppllist
mais la sortie à l’écran n’est pas très pratique à retraiter.
Il semblerait que les données du référentiel Netbackup se retrouvent dans des fichiers plats / nom de dossiers.
J’ai pu retrouver toutes les policies dans /usr/openv/netbackup/db/class
par exemple. On peut y récupérer les schedules, les hosts, etc.
Pré-requis
On veut un fichier généré par un script VTOM avec les objets suivants :
env;app;job;script;host;[parameter|[parameter|]..]
Cf. vthttpd -dump ou tlist amélioré
export FIC_ALL_JOBS=/var/tmp/all_jobs_tlist.txt
fn_Controle_Presence_Fichier ${FIC_ALL_JOBS}
test ${vRC_CODE} -ne 0 && break
fn_WriteLog " "
fn_WriteLog "INFO -- Correlation entre les jobs VTOM et les couples de policies / schedule / hosts"
# Répertoire des class netbackup (policies)
export NB_DB=/usr/openv/netbackup/db/class
POLICIES_EXCLUSION="VTOM_xxx VTOM_yyyy"
# On boucle sur tous les jobs de ${DOMAINE} avec le script Script_netbackup.sh qui correspond au lancement des sauvegardes NB
while read POLICY ; do
for POLICY_EXCLUSION in $(echo "${POLICIES_EXCLUSION}")
do
if test "${POLICY}" == "${POLICY_EXCLUSION}";then
fn_WriteLog "INFO -- Cette police ${POLICY} a ete exclus du check"
continue 2
fi
done
fn_WriteLog " "
# les SCHED_TYPE doivent être :
# 0 (automatique INCR) ou 1 (automatique FULL), 4 (cumulative INCR)
# NE PAS ETRE : 2 c'est application (et ça n'est pas à intégrer dans VTOM)
NB_SCHEDULE_EXCLUSION='| grep -v "EXCEPT"'
NB_SCHEDULE='ls -1 '${NB_DB}'/'${POLICY}'/schedule/*/info '${NB_SCHEDULE_EXCLUSION}'| while read info ; do SCHED_TYPE=`grep "SCHED_TYPE" $info | sed "s/SCHED_TYPE[ ]*//"` ; if test $SCHED_TYPE -eq 0 -o $SCHED_TYPE -eq 1 -o $SCHED_TYPE -eq 4; then echo $info ; fi ; done'
NB_CLIENTS_EXCLUSION=''
NB_CLIENTS="cat ${NB_DB}/${POLICY}/clients "${NB_CLIENTS_EXCLUSION}"| grep -v \"^#\""
# on multiplie le nombre de schedule par le nombre de clients par policy
NB_JOBS_ATTENDUS=`expr $(eval "${NB_SCHEDULE} | wc -l") \* $(eval "${NB_CLIENTS} | wc -l")`
NB_JOBS_VTOM=`grep ";${POLICY}|" ${FIC_ALL_JOBS} | grep "${DOMAINE}ADMBK001" | wc -l`
fn_WriteLog "INFO -- Policy : ${POLICY}"
fn_WriteLog "INFO -- Nombre de jobs attendus : ${NB_JOBS_ATTENDUS}"
fn_WriteLog "INFO -- Nombre de jobs VTOM : ${NB_JOBS_VTOM}"
if test ${NB_JOBS_ATTENDUS} -ne ${NB_JOBS_VTOM}; then
fn_WriteLog "ERROR -- Les jobs VTOM ne correspondent pas au jobs attendus par rapport a netbackup"
fn_WriteLog "INFO -- Jobs dans VTOM avec cette policy : "
grep ";${POLICY}|" ${FIC_ALL_JOBS} | grep "${DOMAINE}ADMBK001"
fn_WriteLog "INFO -- Schedules Netbackup : "
eval 'ls -1 '${NB_DB}'/'${POLICY}'/schedule/*/info '${NB_SCHEDULE_EXCLUSION}
fn_WriteLog "INFO -- clients Netbackup : "
eval "cat ${NB_DB}/${POLICY}/clients "${NB_CLIENTS_EXCLUSION}"| grep -v \"^#\""
vRC_CODE=20
continue
fi
fn_WriteLog "OK -- match ok"
done < <(cat ${FIC_ALL_JOBS} | grep "${DOMAINE}ADMBK001" | grep "Script_netbackup.sh"| cut -d";" -f6 | awk -F"|" '{print $1}' | sort | uniq)
# Mes jobs netbackup ont ce script "Script_netbackup.sh" et la machine d'exécution est ${DOMAINE}ADMBK001
Les fonctions préfixées fn_ ne sont pas définies ici mais sont assez explicites.