SCRIPTS – Comando Avanzado en Bash: awk.

Uno de los comandos más poderosos y menos conocidos (aunque extremadamente útil) en la automatización de scripts Bash es awk. Este comando es un lenguaje de programación diseñado para el procesamiento de texto y la manipulación de datos. Permite realizar operaciones complejas con archivos de texto y datos tabulares de manera eficiente.

¿Qué es awk?

Funcionalidades Clave

  • Selección de Campos: Permite seleccionar y trabajar con columnas específicas de datos.
  • Condiciones: Puedes aplicar condiciones para filtrar datos.
  • Operaciones Matemáticas: Permite realizar cálculos directamente en los datos.
  • Formateo de Salida: Facilita la personalización del formato de salida.

Ejemplos Avanzados de Uso de awk

Ejemplo 1: Filtrar y Sumar Columnas

Supongamos que tienes un archivo de texto llamado datos.txt con el siguiente contenido:

Puedes usar awk para calcular la suma de los salarios:

Ejemplo 2: Extracción de Datos con Condiciones

Imagina que deseas extraer solo las personas que tienen un salario mayor a 3500:

Ejemplo 3: Formateo de Salida

Puedes utilizar awk para formatear la salida de una manera más legible. Por ejemplo, mostrando el nombre y el salario en una tabla:

¿Por Qué Usar awk en Automatización?

  • Eficiencia: Permite procesar grandes volúmenes de datos de manera rápida.
  • Flexibilidad: Puedes escribir scripts complejos para analizar y manipular datos.
  • Integración: Se puede combinar fácilmente con otros comandos de Bash, como grepsed, y cut.

Conclusión

El comando awk es una herramienta poderosa que ofrece capacidades avanzadas para el procesamiento de texto y datos en scripts Bash. Su capacidad para realizar cálculos, formatear datos y aplicar condiciones lo convierte en un recurso invaluable para la automatización de tareas.

Publicado en Unix - Linux | Deja un comentario

SCRIPT – Variables útiles en Script Bash y versiones de introducción.-

Además de BASH_REMATCH, existen otras variables y características en Bash que son igualmente útiles para manejar y procesar datos de manera efectiva. A continuación se presentan algunas de estas variables, su funcionalidad y la versión de Bash en la que se introdujeron.

1. BASH_SUBSHELL

Descripción

  • BASH_SUBSHELL es una variable que contiene el nivel de subshell actual. Cada vez que se crea un subshell (por ejemplo, al ejecutar un comando en un subshell), su valor se incrementa en uno.

Uso

  • Permite identificar en qué nivel de subshell se está ejecutando un script, lo que puede ser útil para la depuración y el manejo de variables.

Ejemplo

2. BASH_ENV

Descripción

  • BASH_ENV especifica el archivo que se debe ejecutar cuando se inicia un subshell. Es útil para establecer variables de entorno o configuraciones en subshells.

Uso

  • Permite cargar configuraciones específicas en entornos de ejecución.

Ejemplo

3. BASH_EXECUTION_STRING

Descripción

  • BASH_EXECUTION_STRING contiene la cadena de comandos que se están ejecutando actualmente en el shell. Esto es útil para inspeccionar el comando en ejecución.

Uso

  • Proporciona información sobre el comando que se está ejecutando en un contexto específico.

Ejemplo

4. BASH_VERSION

Descripción

  • BASH_VERSION muestra la versión actual de Bash que se está ejecutando. Esto es útil para la compatibilidad y el manejo de características específicas de versiones.

Uso

  • Permite verificar la versión de Bash y adaptar scripts según la versión.

Ejemplo

Versión de Introducción

  • BASH_REMATCH: Introducido en Bash 3.0 (2004).
  • BASH_SUBSHELL: Introducido en Bash 2.0 (1996).
  • BASH_ENV: Introducido en Bash 2.0 (1996).
  • BASH_EXECUTION_STRING: Introducido en Bash 4.0 (2009).
  • BASH_VERSION: Introducido en Bash 2.0 (1996).

Conclusión

Las variables mencionadas ofrecen funcionalidades valiosas para el manejo de datos y la depuración en scripts de Bash. Desde el control de niveles de subshell hasta la verificación de la versión de Bash, cada una tiene su lugar en la escritura de scripts robustos y eficientes. Al incorporar estas variables, puedes mejorar la flexibilidad y la capacidad de tus scripts.

Publicado en Unix - Linux | Deja un comentario

LINUX – Uso de BASH_REMATCH en Scripts Bash con ejemplos simples y avanzados.

La variable BASH_REMATCH es una característica poderosa en los scripts de Bash que se utiliza para trabajar con expresiones regulares. Cuando se realiza una operación de coincidencia usando el comando [[ ... =~ ... ]], los resultados de la coincidencia se almacenan en esta variable.

¿Cómo Funciona?

  • BASH_REMATCH[0]: Contiene la coincidencia completa del patrón.
  • BASH_REMATCH[n]: Contiene las coincidencias de los grupos capturados, donde n es el número del grupo.

Sintaxis

Ejemplos Avanzados

Ejemplo 1: Extracción de Datos de una Fecha

Este ejemplo muestra cómo extraer el día, el mes y el año de una fecha en formato DD/MM/AAAA.

Ejemplo 2: Validación de una Dirección de Correo Electrónico

En este ejemplo, se valida una dirección de correo electrónico y se extraen el nombre de usuario y el dominio.

Ejemplo 3: Análisis de una URL

Este script analiza una URL y extrae el protocolo, el dominio y la ruta.

Conclusión

La variable BASH_REMATCH es una herramienta invaluable para el procesamiento de texto en scripts Bash. Permite extraer y manipular datos de manera eficiente utilizando expresiones regulares, lo que facilita la validación y el análisis de cadenas compleja

Publicado en Unix - Linux | Deja un comentario

LINUX – Análisis LOG mediante ARRAY ASOCIATIVO (contabiliza apariciones de patrón en archivo LOG). rut – direcciones ip

Tenga presente que para utilizar Arrays Asociativos de tener instalado versión de BASH desde versión 4.0

En el siguiente SCRIPT buscaremos todos los RUTs Chilenos que aparezcan en el archivo LOG, y al finalizar entregara un resumen con la cantidad de veces que apareció cada RUT en el archivo LOG :

El resultado de la ejecución del SCRIPT, sería mas o menos así :

Misma situación para para buscar Direcciones IP en un archivo LOG y entregar un resumen al final con las direcciones IP y la cantidad de veces que aparece en el archivo LOG :

Al ejecutarlo nos entregaría como resultado, algo así :

Publicado en Unix - Linux | Deja un comentario

Openssl – Comprobar Fecha de Caducidad de un Certificado Digital(SSL).

Los certificados SSL tienen un periodo de validez de sólo un año. Si no renuevas tu certificado antes de la fecha límite, tu sitio web quedará inaccesible para los visitantes porque los navegadores lo marcarán como potencialmente vulnerable a amenazas de seguridad.

Los certificados .crt son archivos de seguridad que permiten a los sitios web establecer conexiones seguras con los navegadores. Esto protege la información de los usuarios, como las transacciones con tarjetas de pago, los inicios de sesión y las transferencias de datos. 

Los certificados .crt contienen información cifrada, como la clave pública del servidor y la firma digital de la entidad certificadora

El siguiente código que expongo sirve como PLUGIN para NAGIOS, pero se puede adaptar a cualquier situación que se requiera. Por ejemplo, ejecutarlo mediante CRONTAB y enviar un correo de alerta, cuando este por vencer, etc….

Lo he probado en servidores UNIX, LINUX, SOLARIS, AIX… Y funciona como es esperado. Tratare de documentar lo más claro posible. Trate de no utilizar comandos avanzados, ya que estos solo funcionan en algunas plataformas y la idea es que este código funcione en cualquiera. Con esta misma lógica es posible llevarlo para que se ejecute en WINDOWS :

Al ejecutar el SCRIPTS, me solicitara 4 para metros :

1.- Ruta completa del ejecutable «openssl».

2.- Ruta completa del certificado, para este caso archivo .crt.

3.- Días de alerta CRITICAL (para alertar a consola NAGIOS).

4.- Días de alerta WARNING (para alertar a consola NAGIOS).

Su ejecución directa en el servidor, sería mas o menos así (dar permisos de ejecución al SCRIPT) :

El siguiente código funciona en LINUX. Como pueden ver hace lo mismo, pero el código se reduce bastante….

Publicado en Unix - Linux | Deja un comentario