Subir archivos a "/"
This commit is contained in:
127
cpvalcps.awk
Normal file
127
cpvalcps.awk
Normal file
@ -0,0 +1,127 @@
|
||||
#!/usr/bin/nawk -f
|
||||
|
||||
# Se usan arrays asociativos a modo de tablas indexados por campo "Sia eje"
|
||||
# Tabla: Campo1 | Campo2
|
||||
# Descripcion: Modulo | Desc
|
||||
# Errores: Sia eje | Contador errores
|
||||
# Procesos: Sia eje | Num procesos
|
||||
# Tahgproc.cfg: Sia eje | Num configurado de procesos
|
||||
# Modulo: Sia eje | Modulo
|
||||
|
||||
# funcion basename
|
||||
function basename(p) { n=split(p,a,"/"); return a[n]; }
|
||||
|
||||
BEGIN {
|
||||
|
||||
# Creamos tabla "Descripcion" con los modulos y su descripcion
|
||||
Descripcion["000001"]="MGO"
|
||||
Descripcion["000001X"]="Conectividad HSM"
|
||||
Descripcion["000001Y"]="Conectividad Maq ONL"
|
||||
Descripcion["010002"]="TPV"
|
||||
Descripcion["040001"]="PMC"
|
||||
Descripcion["040001X"]="Conectividad PMC"
|
||||
Descripcion["040001Y"]="Conectividad Maq PMC"
|
||||
Descripcion["050001"]="PSR"
|
||||
Descripcion["050001X"]="Conectividad PSR"
|
||||
Descripcion["050001Y"]="Conectividad Maq PSR"
|
||||
|
||||
# Configuracion inicial
|
||||
file_tahgproc_cfg="/sia/dat/tahgproc.cfg"
|
||||
file_errores="/export/userf5/cpvalpcs_errores"
|
||||
file_log="/export/userf5/cpvalpcs.log"
|
||||
|
||||
procesos_sia="/usr/bin/ptree sia"
|
||||
max_errores=5
|
||||
salida="OK"
|
||||
ko=0
|
||||
|
||||
# Leer fichero con los errores acumulados y creamos tabla "Errores" con los acumulados por proceso
|
||||
while ((getline < file_errores) > 0)
|
||||
{
|
||||
split ($0,linea,"|");
|
||||
Errores[linea[1]]=linea[2];
|
||||
}
|
||||
close file_errores
|
||||
|
||||
# Creamos tabla "Procesos" con los procesos en ejecucion de sia
|
||||
while ((procesos_sia | getline ) > 0) {
|
||||
if ($3) { sia_eje=basename($2)" "$3 } else { sia_eje=basename($2)}
|
||||
Procesos[sia_eje]++;
|
||||
}
|
||||
close procesos_sia
|
||||
|
||||
# Creamos tablas: "Tahgproc_cfg" - procesos configurados en "/sia/dat/tahgproc.cfg"
|
||||
# "Modulo" - relaciona el modulo SIA con sus ejecutables
|
||||
while ((getline < file_tahgproc_cfg) > 0)
|
||||
{
|
||||
if ($1 !~ /^#/ && $0 !~ /^$/ ) {
|
||||
if ($2 == "tahgneti") { sia_eje="tahginet "$8 }
|
||||
else {
|
||||
if ($8 == "F") { sia_eje=$2 } else {sia_eje=$2" "$8}
|
||||
}
|
||||
Tahgproc_cfg[sia_eje]=$3;
|
||||
Modulo[sia_eje]=$1;
|
||||
}
|
||||
}
|
||||
close file_tahgproc_cfg
|
||||
|
||||
# Chequeamos discrepancias
|
||||
for (sia_eje in Tahgproc_cfg) {
|
||||
# Ajustes procesos tahginet, se duplican
|
||||
if (sia_eje == "tahginet PCSM" || sia_eje == "tahginet SRMP") { Tahgproc_cfg[sia_eje]*=2; }
|
||||
if (sia_eje == "taegTAGT" \
|
||||
|| sia_eje == "tahginet SIA1" || sia_eje == "tahginet SIA2" || sia_eje == "tahginet SIA3" || sia_eje == "tahginet SIA4" \
|
||||
|| sia_eje == "tahginet SIS1" || sia_eje == "tahginet SIS2" || sia_eje == "tahginet SIS3" || sia_eje == "tahginet SIS4" \
|
||||
|| sia_eje == "tahginet ONL1" || sia_eje == "tahginet ONL2" || sia_eje == "tahginet ONL3" || sia_eje == "tahginet ONL4" )
|
||||
{ Tahgproc_cfg[sia_eje]=0}
|
||||
|
||||
if (Tahgproc_cfg[sia_eje] > 0)
|
||||
{
|
||||
if (Tahgproc_cfg[sia_eje] != Procesos[sia_eje]) { Errores[sia_eje]++; }
|
||||
else { Errores[sia_eje]=0}
|
||||
printf "%s|%d\n", sia_eje,Errores[sia_eje] > file_errores
|
||||
}
|
||||
if (Errores[sia_eje] > max_errores)
|
||||
{
|
||||
if (Modulo[sia_eje] ~ "040001")
|
||||
{
|
||||
severity="WR"
|
||||
Mod_WR[Modulo[sia_eje]]++
|
||||
split (sia_eje, eje ," ");
|
||||
Eje_WR[eje[1]]++
|
||||
}
|
||||
else
|
||||
{
|
||||
ko=1
|
||||
severity="KO"
|
||||
Mod_KO[Modulo[sia_eje]]++
|
||||
split (sia_eje, eje ," ");
|
||||
Eje_KO[eje[1]]++
|
||||
|
||||
}
|
||||
salida=severity
|
||||
"date +'%h %d %H:%M:%S'" | getline fecha
|
||||
printf "%s %s Modulo: [%s - %s] Proceso: [%s] Esperado: (%d) Encontrado: (%d)\n",\
|
||||
fecha,severity,Modulo[sia_eje],Descripcion[Modulo[sia_eje]],sia_eje,Tahgproc_cfg[sia_eje],Procesos[sia_eje]\
|
||||
>> file_log
|
||||
}
|
||||
}
|
||||
|
||||
# En funcion del resultado mostramos la salida
|
||||
if (salida=="KO" || ko==1)
|
||||
{
|
||||
printf "KO - Modulos SIA: ["; count=0;
|
||||
for (var in Mod_KO) { if (count>0){printf ", "}; count++; printf var"-"Descripcion[var] }
|
||||
count=0; printf "] - Procesos: ["
|
||||
for (var in Eje_KO) { if (count>0){printf ", "}; count++; printf var } printf "]\n"
|
||||
}
|
||||
else if (salida=="WR")
|
||||
{
|
||||
printf "WR - Modulos SIA: ["; count=0
|
||||
for (var in Mod_WR) { if (count>0){printf ", "}; count++; printf var"-"Descripcion[var] }
|
||||
count=0; printf "] - Procesos: ["
|
||||
for (var in Eje_WR) { if (count>0){printf ", "}; count++; printf var }; printf "]\n"
|
||||
}
|
||||
else {print "OK"}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user