LINUX – Script bash para enviar correos en forma masiva.

Este es solo un ejemplo de SCRIPTS BASH para enviar correos a múltiples destinatarios. El cual se puede modificar según las necesidades.

El archivo de texto que contiene la información de destinatarios y datos a informar, para este caso de nuestro ejemplo, tiene los campos separados por coma (,) : nombre correo dirección :

Juan Pérez,juan.perez@example.com,Calle Falsa 123

Ana García,ana.garcia@example.com,Avenida Principal 456

Explicación del Script

  1. Verificación del Archivo: Comprueba si el archivo de datos existe.
  2. Lectura del Archivo: Lee el archivo línea por línea, separando los campos por comas.
  3. Manejo de Errores: Verifica si hay datos incompletos y continúa con la siguiente línea si es necesario.
  4. Cuerpo del Mensaje: Crea un mensaje personalizado utilizando las variables leídas.
  5. Envío del Correo: Utiliza mailx para enviar el correo con el asunto especificado.
  6. Confirmación: Imprime un mensaje de confirmación por cada correo enviado.

Publicado en Unix - Linux | Deja un comentario

UNIX_LINUX – Expresiones Regulares Extendidas en Scripts Bash.

Las expresiones regulares extendidas (ERE) son una herramienta poderosa en Bash que permiten hacer coincidir patrones complejos en cadenas de texto. Estas expresiones son más avanzadas que las expresiones regulares básicas y ofrecen más funcionalidades, como la inclusión de  metacaracteres   adicionales y operadores que hacen que la búsqueda y manipulación de texto sea más eficiente.

Para utilizar expresiones regulares extendidas en Bash, a menudo se emplea el comando grep -E o egrep (que es equivalente a grep -E).

Algunos ejemplos de uso practico:

1.- Para buscar las líneas que contienen «hola» o «buenos», puedes usar:

2.- Si deseas encontrar líneas que contengan letras mayúsculas seguidas de cualquier número de letras minúsculas, puedes utilizar:

3.- Para encontrar líneas que contengan números repetidos (por ejemplo, dos dígitos seguidos), puedes usar:

4.- Si deseas listar los archivos en un directorio que terminan en .txt o .md, puedes hacer:

5.- Puedes usar expresiones regulares extendidas con sed para reemplazar texto. Por ejemplo, reemplazar «hola» por «adiós»:

6.- Para encontrar la palabra «hola» que no esté contenida en otras palabras, puedes usar:

  • \b: Indica un límite de palabra (inicio o fin de una palabra).
  • Otra opción es usar la opción -w de grep, que busca palabras completas. Así, puedes lograr el mismo resultado más fácilmente:

7.- Para encontrar direcciones de correo electrónico en un archivo, puedes usar:

8.- Para encontrar números de teléfono en un formato específico (por ejemplo, (123) 456-7890), puedes usar:

9.- Para encontrar todas las palabras que comienzan con la letra «a» en un archivo, usa:

10.- Supongamos que deseas encontrar frases que contengan una palabra repetida, como «hola hola». Puedes usar:

11.- Para buscar fechas en el formato DD-MM-YYYY, puedes usar:

12.- Para buscar códigos postales en formato de cinco dígitos, puedes usar:

13.- Reemplazar múltiples espacios por un solo espacio :

14.- Reemplazar múltiples patrones:

15.- Expresión regular para validar un email :

Para sacar las direcciones de correo desde un archivo.

16.- Expresión regular para buscar la palabra «vieja» y reemplazarla por «nueva» :

17.- Expresión regular para fechas en formato YYYY-MM-DD:

Para extraer las fechas en formato DD/MM/AAA desde un archivo.

18.- Para extraer las direcciones IP desde un archivo :

19.- Expresión regular para extraer el dominio:

20.- Buscar líneas que contengan palabras que empiecen y terminen con la misma letra:

21.- Buscar líneas que contengan un número de 3 a 5 dígitos :

22.- Buscar líneas que contengan «gato» o «perro» (opcionalmente con «s» al final):

23.- Reemplazar la primera palabra de cada línea por «Hola»:

24.- Reemplazar el primer y tercer dígito de un número de teléfono por «X»:

25.- Buscar contraseñas que tengan al menos 8 caracteres, incluyendo al menos una mayúscula, una minúscula y un número:

26.- Buscar errores en un archivo de registro que contengan «ERROR» seguido de un código de error:

Publicado en Unix - Linux | Deja un comentario

LINUX/UNIX – Comando XARGS resumen y ejemplos de SCRIPTS.-

El comando xargs es una herramienta poderosa en Linux/Unix que toma la salida de un comando y la convierte en argumentos para otro comando. Es especialmente útil para procesar listas de archivos o datos. Su principal ventaja radica en la capacidad de manejar eficientemente entradas largas, evitando los límites de longitud de línea de comandos.

Sintaxis básica:

xargs [opciones] comando

Opciones comunes:

  • -I {}: Reemplaza {} con la entrada actual. Muy útil para iterar sobre elementos.
  • -n num: Especifica el número de argumentos a pasar por cada invocación del comando.
  • -P num: Ejecuta num comandos en paralelo.
  • -t: Imprime el comando antes de ejecutarlo (útil para depuración).
  • -0: Separa los argumentos con un carácter nulo (útil para nombres de archivo con espacios).

Ejemplos:

  1. Eliminar archivos: Eliminar todos los archivos .txt en el directorio actual:

find busca archivos .txt y -print0 separa los nombres con un carácter nulo para manejar nombres con espacios. xargs -0 rm -f elimina los archivos.

  1. Renombrar archivos: Agregar el prefijo copia_ a todos los archivos .jpg:

-I {} reemplaza {} con el nombre del archivo.

  1. Procesar archivos en paralelo: Comprimir todos los archivos .log en paralelo usando 4 procesos:

-P 4 ejecuta gzip en 4 procesos simultáneamente.

Script avanzado: Procesar archivos de un directorio, extraer información y guardar en un archivo de salida:

Este script busca archivos .txt, itera sobre cada uno usando -I {}, ejecuta un comando sh -c para cada archivo (que imprime el nombre del archivo y busca un patrón específico usando grep), y redirige la salida a salida.log.

Recuerda ajustar /ruta/a/los/archivos y "patron" según tus necesidades. Este ejemplo demuestra la flexibilidad de xargs para encadenar comandos y procesar datos de forma eficiente.

Consideraciones:

  • La seguridad es crucial. Ten cuidado al usar xargs con comandos como rm o mv, ya que una sintaxis incorrecta puede tener consecuencias graves.
  • Para tareas complejas, considera usar find -exec que puede ser más legible en algunos casos.
  • La eficiencia de xargs depende de la naturaleza de los datos y del comando al que se le pasan los argumentos.
Publicado en Unix - Linux | Deja un comentario

SCRIPT – Plugin NAGIOS para verificar archivo RESOLV.CONF en servidores.

En el siguiente ejemplo, ejecutaremos este plugin NAGIOS, para detectar cualquier cambio o diferencia detectada en el archivo RESOLV.CONF de nuestros servidores :

Publicado en Unix - Linux | Deja un comentario

Scripts – Cambio de ruta absoluta en archivos. Cambio de patrón en múltiples archivos.

Para este ejemplo. Supondremos que tenemos todos nuestro SCRIPT en un determinado directorio (carpeta) y necesitamos realizar el cambio de una ruta determinada en todos los SCRIPTS. Es decir recorrerlos todos y realizar el cambio con la nueva ruta.

Instrucciones para ejecutar el script

  1. Crea el archivo del script:
    • Abre tu terminal.
    • Escribe nano cambiar_ruta.sh (o el nombre que prefieras).
  2. Pega el script:
    • Copia y pega el script anterior en el editor.
  3. Guarda y sal del editor:
    • Presiona CTRL + X, luego Y y Enter para guardar los cambios.
  4. Dale permisos de ejecución:
    • Ejecuta el comando chmod +x cambiar_ruta.sh.
  5. Ejecuta el script:
    • Corre el script con ./cambiar_ruta.sh.

Notas Importantes

  • Asegúrate de tener permisos necesarios para modificar los archivos en el directorio.
  • Este script utiliza sed para hacer el reemplazo en línea. El modificador -i realiza los cambios directamente en los archivos.

También puede modificar este script para realizar cualquier cambio masivo en archivos.

Publicado en Unix - Linux | Deja un comentario