¿Cómo buscar en todos los archivos dentro de un directorio y sus subdirectorios?

Y aquí viene lo más interesante y por lo que esta herramienta me ahorra mucho tiempo a la hora de modificar archivos de proyectos muy grandes:

Al indicar -ri conseguimos que la búsqueda se realice dentro de todos los archivos existentes en el propio directorio y en todos los subdirectorios internos.

Publicado en Unix - Linux | Deja un comentario

BASH – Monitoreo respuestas Web Services, con archivo de bloqueo.-

El siguiente SCRIPT sirve para verificar las respuestas de Web Service que atiende una granja de servidores. Este SCRIPT se puede lanzar con el comando «NOHUP» en segundo plano, para que siga ejecutándose independiente de si cerramos la sesión. Realiza lo siguiente :
1.- La variable «lockfile» corresponde a un archivo de bloqueo para evitar que el programa se ejecute más de una vez.-
2.- Si el programa no se esta ejecutando, crea el archivo de bloqueo con el PID de ejecución del SCRIPT.-
3.- Con la instrucción «trap», eliminamos el archivo de bloqueo, esto si se detiene el SCRIPT por algún motivo.-
4.- Para este ejemplo, tenemos una granja de servidores de nombre NEPTUNO, en que tenemos 16 servidores de nombre : neptuno203, neptuno205, neptuno206, etc…
5.- Ejecutamos un bucle for infinito.-
6.- La variabele «log» corresponde al archivo de LOG, que registra los reinicios realizados.-
7.- Un ciclo for para iterar cada servidor.-
8.- Las variables «consult1» y «consult2» corresponden al resultado de la consulta del Web Service, mediante el comando «curl», buscando si respondió con algún error.
9.- Si la respuesta es correcta, con el comando «continue», salta a la siguiente iteración del bucle.-
10.- Si alguno de los Web Sevice responden con error, procede a lanzar el script que reinicia el puerto con problemas y procede a registrar la acción en el archivo de LOG.-
11.- Si el programa ya esta en ejecución al tratar de lanzarlo una segunda vez. El programa lo informa y le indica como cerrarlo, haciendo un «kill» al pid indicado y le indica que debe eliminar manualmente el archivo de bloqueo. Una vez realizado esto, se puede volver a ejecutar el SCRIPT nuevamente.-

Publicado en Unix - Linux | Deja un comentario

BASH – Buscar «TEXTO» en múltiples archivos pasados como parámetros al SCRIPT.-

En este ejemplo, lo que se desea es buscar un cierto TEXTO en múltiples archivos, pasados como parámetros al SCRIPT, y mostrar en pantalla los archivos que contiene el TEXTO buscado. El SCRIPT prueba.sh contiene el siguiente código :

Ejecutamos el SCRIPT :

Al ejecutarlo nos presentaría la siguiente información (Si encuentra el PATRON buscado) :

Este SCRIPT es solo un ejemplo, el cual se puede adaptar para cualquier situación que se requiera, eliminar lineas, cambiar texto, etc…
A grandes rasgos lo que realiza es :
1.- Mediante un ciclo FOR recorre o iteramos sobre todos los parámetros (archivos) pasados como parámetros para la ejecución del SCRIPT.
2.- Busco el patrón indicado y el resultado de la búsqueda lo almaceno en la variable «linea».
3.- Mediante «if» verificamos si la variables «linea» esta vaciá o no ha sido definida (NULL), de ser así, significa que el patrón no fue encontrado y mediante la instrucción «continue» pasa a la siguiente iteración de parámetros (siguiente archivo).-
4.- Al pasar a la intrucción «else» significa que el patrón fue encontrado y por lo tanto lo imprime en pantalla.-

Publicado en Unix - Linux | 1 comentario

BASH – Como pasar variables dentro de un SCRIPT BASH a SED.-

Puede que en algún momento necesitemos pasar una variable obtenida en un script al comando SED, para realizar algún cambio en archivos. Para el siguiente ejemplo, utilizaremos un archivo llamado «prueba.txt», el cual contiene los siguientes datos:

Necesitamos cambiar el valor «dos» por «seis». La única forma que me ha resultado para realizarlo es utilizando las comillas dobles y simples como se indica en el siguiente SCRIPT :

Al lanzar este SCRIPT nos generar un nuevo archivo (nueva.txt) con los siguientes datos :

Para realizar el cambio directamente en el archivo, se puede realizar mediante el lenguaje PERL, con la siguiente instrucción :

Publicado en Unix - Linux | Deja un comentario

BASH – Script verifica estado para NAGIOS.-

Este script se puede utilizar para verificar el estado de algún componente y alertar en la consola NAGIOS. Para este ejemplo se asume que una salida «0» es que el componente esta correcto. Por esto si el archivo no existe, la salida sera un «0». Para cualquier otro tipo de codigo, la consola NAGIOS mostrara alguna alerta en particular para tomar acciones correctivas.-

Publicado en Unix - Linux | Deja un comentario