Skip to content

Shell script build and installed with ansible that allow to free space at FS

Notifications You must be signed in to change notification settings

axlraul/logTruncate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

La finalidad de este playbook es poder ansibilizar la instalación en diversos nodos de forma simultánea de un script en lenguaje shell que permita la liberación de espacio ocupado de logs en un FS mediante operaciones de truncado y compresión, cuya instalación se adapte en función de los paths a truncar/comprimir que realmente existen en los nodos donde se instale.

  • El funcionamiento del playbook es el siguiente:

-Realiza checks de directorios, archivos y versión de OS previos a la instalación relativos al funcionamiento final del script. -Realiza la instalación del script en el/los nodo/s objetivo/s.

  • El funcionamiento del script instalado es el siguiente:

-Eliminación de archivos anteriores a N dias
Si se define el valor 'historyDays', se indica el número de dias de retencion de archivos comprimidos por el script previamente en la tarea "Truncado" comentada a continuación. Si este número de días de antiguedad se supera por un log truncado en el momento de ejecución del script, este se elimina.

-Truncado
Únicamente se truncarán los logs objetivos del script si existe espacio disponible en el directorio auxiliar 'auxPath'. En concreto, se copia el log objetivo 'logs.path' al directorio auxiliar, se comprime, se concatena la fecha del dia actual al nombre del archivo, se vacía el log objetivo y se devuelve al directorio inicial.

-Compresión
Mediante la variable 'logs.wildcard' se define el log o conjunto de logs mediante wildcard en el que se ejecutará la operación de comprimir sin rotar.

Los logs rotados pertenecerán a diversos tipos de aplicaciones:

-LOGS: Opción de truncado y compresión customizable. El script en lenguaje shell realiza las operaciones definidas en los puntos Truncado y Compresión comentados anteriormente. Actualmente NO elimina archivos para liberar espacio, únicamente trunca y comprime, por lo que el problema de ocupación puede no solventarse por completo.

-IHS: Realiza la misma operación de truncado que la definida en Truncado y Compresión para LOGS, pero es un proceso transparente para el usuario. Únicamente se necesita establecer su valor a 'true'.

-WAS: Realiza la misma operación de truncado que la definida en Truncado y Compresión para LOGS, pero es un proceso transparente para el usuario. Únicamente se necesita establecer su valor a 'true'.

Independientemente de los valores definidos en LOGS, IHS y WAS, el playbook de Ansible es capaz de determinar previa instalación si debe instalar o no las operaciones de rotado/truncado en función de si las aplicaciones existen en cada nodo. Se evita así que existan posibles operaciones innecesarias y, por consiguiente, el despliegue masivo del script.

Uso de variables:

Variable Mandatory Optional Accepted values
installPath x '/ruta/a/script.sh'
auxPath x /ruta_auxiliar
minLogSize x numeros naturales [0,1,...] en Bytes
historyDays x 'false/[0,1,..]' días
IHS x true/false
WAS x true/false
logs.path x '/ruta/a/log'
logs.wildcard x '/ruta/a/????/log*'

Notas:
No está contemplado el uso de la variable 'logs.wildcard' sin el uso de 'logs.path'
Por defecto, los permisos del script es: rw-r-xr-x root:sys

About

Shell script build and installed with ansible that allow to free space at FS

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages