En el siguiente SCRIPT, ejecuto un SCRIPT BASH LOCAL en múltiples SERVIDORES REMOTOS. Esto es para obtener ESTADISTICAS de los errores “error-25” y “error-55”, de una determinada aplicación, para un día especifico. Pueden existir más de un LOG para un determinado día.
Para realizarlo, se ejecuta un SCRIPT LOCAL en los Servidores REMOTO, el cual recorre todos los archivos LOG que encuentra en el directorio especificado en el Servidor Remoto. Luego se filtran por la fecha solicitada y por las líneas de registro que indican los patrones “error-25” y error-55” y los contabiliza.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#!/bin/bash # Script realizado en servidor SOLARISanali #la fecha en formato "2026-06-01" y se ingresa con comillas dobles..... fecha=$1 log=/usr01/home/monitor/estad-resultado.log # Existen diferentes formas de ingresar los nombres de los servidores, puede ser mediante un archivo, pasarlos al ejecutar el programa o también como se presenta a continuación. - granja="servi001 servi002 servi003 servi004 servi005 servi006 servi007 servi008” for servi in $granja; do # Ejecuto el SCRIPT LOCAL en el servidor REMOTO (este es el formato para realizar la ejecución remota) pasando la fecha como parámetro, obteniendo el resultado en la variable “resultado”. - resultado=$(ssh "$servi" 'bash -s' < /usr01/home/monitor/estad_rem.sh "$fecha") # Procedo a separar los 2 valores que vienen separados por un guion. - error-25=$(echo $resultado | cut -d "-" -f1) error-55=$(echo $resultado | cut -d "-" -f2) # Muestro el resultado, formateado por pantalla. - printf "%-10s %-10s %-3s %8s\n" "$fecha" "$servi" "$ error-25" "$ error-55" #Grabo el resultado, formateado en un archivo de log. - printf "%-10s %-10s %-3s %8s\n" "$fecha" "$servi" "$error-25" "$error-55" >> $log done |
SCRIPT LOCAL, para ejecutar en SERVIDORES REMOTOS
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/bin/bash # Ruta donde están almacenado los archivos LOG. - DIRECTORIO="/usr/pgm/resulta/nagresp01" FECHA=$1 # Verifico que programa esta disponible en el servidor (ggrep grep) if [ -x /usr/sfw/bin/ggrep ]; then GREP_CMD="/usr/sfw/bin/ggrep" elif [ -x /usr/xpg4/bin/grep ]; then GREP_CMD="/usr/xpg4/bin/grep -E" else GREP_CMD="grep" Fi #Los log tiene el formato “log-app-0001.log” pueden existir x archivos en que solo varia el numero (001). - CONTEOS=$(cat "$DIRECTORIO"/log-app-*.log 2>/dev/null | grep "$FECHA" | awk ' /error-25/ {c25++} /error-55/ {c55++} END {print c25+0, "-", c55+0} ') echo "$CONTEOS" |