Script para purgado de logs o archivos temporales. El uso excesivo de logs nos lleva a la necesidad de la existencia de una rotación o depuración de los mismos; para esa ocasión, tan solo con un find bien robusto podemos hacer esta purga.
Veamos el ejemplo y analicemos brevemente el código:
MantenimientoLogs.sh:
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/ksh
Log()
{
date“+%Y/%m/%d%H:%M:%S,$0,$1”
}
echo
Log“***$0Init***”
cfgFile=$1
iftest-z“$”;then
Log“No se especifico archivo de configuracion”
Log“Termina!”
exit1
fi
iftest!-f“$cfgFile”;then
Log“No se encuentra el archivo de configuracion:[$cfgFile]”
El primero de los archivos es el que hace el trabajo, el segundo es solamente de configuración. El primero recibe como argumento el segundo. El único motivo de este desacople es que cuando haya algo de configuración que modificar, se haga en el archivo cfg y no en el script de mantenimiento que es el que tiene la lógica.
En MantenimientoLogs.cfg solo configuro el directorio que quiero purgar, y la cantidad de días que pretendo mantener los logs.
MantenimientoLogs.sh tiene la “lógica”, entre comillas ya que no hay mucho que decir de la misma sino más bien del find. En este script lo primero que vemos es una función Log, que hace de echo pero que agrega la fecha a cada línea. Luego se hace una especie de “include” del archivo de configuración (recibido como parámetro), previo chequeo de la existencia del argumento y la existencia del archivo. Y luego viene todo el trabajo, que lo hace el find.
El find en el caso del script busca todos los archivos .sql o .*~ cuya fecha de modificación sea más de N días (donde N es $datePurge y $datePurge lo habiamos configurado en el cfg). Y finalizando esta línea, a los resultados del find les ejecuta la acción “rm -v“.
¿Te ha servido este sitio alguna vez? Cada script, cada línea de ayuda aquí es fruto de horas de trabajo y pasión por compartir. Si alguna vez resolviste un problema gracias a esta página, considera hacer una donación. Tu aporte —por pequeño que sea— mantiene vivo este proyecto y me impulsa a seguir creando.