Problema con logs!

Hola experto nuevamente...
Acudo otra vez a tu ayuda.
Te comento que ya finalice un sistema para un centro oftalmológico.
Ayer me puse a revisar los archivos de logs del servidor apache con el que corre la aplicación. Descubrí un problema.
En la carpeta xampp/apache/logs se encuentra archivos de texto que guardan todas las peticiones que el servidor realiza.
El archivo access.log(txt) esta pesando alrededor de 85 Mb..., después tienes un error.log(para los errores, también txt) y ssl_request.log
El más importante en este caso es access.log y error.log
La idea es poder controlar el crecimiento de estos archivos ya que sino en un tiempo ese archivo te pesaría tranquilamente 600 Mb..
Mi idea es ir comprimiendo los archivos, guardarlos en otro carpeta, vaciar ese archivo (borrar su contenido) y seguir escribiendo...
Empecé a realizar el código pero tengo una duda...
---------------------------------------------------------------------------------
for /f "tokens=1" %%i in ('date /t') do set DATE=%%i
set fecha=%DATE:/=%
C:\\xampp\\xampp_stop
copy C:\\xampp\\apache\\logs\\*.* C:\\xampp\\apache\\backup_logs\\*.*
Hasta acá, lo que haces es copiarme el contenido que esta dentro de /logs a /backup_logs
Hasta ahí bien, pero me di cuenta que mejor seria si me comprime todo el contenido de /logs en un solo archivo y lo envía a /backup_logs...
El drama es que necesito luego que los archivos que están en /logs, me los vacíe así el servidor empieza a escribir de cero
Espero tu ayuda
Espero haberme explicado
Cualquier cosa avisame
SAludos
Diego

1 Respuesta

Respuesta
1
Perdona pero no entiendo cuál es es problema. El trozo de archivo BAT que figura en tu consulta sirve para guardar en la variable %fecha% la fecha de hoy suprimiendo los separadores ("/"), supongo que para incorporarla al archivo comprimido en el que pretendes guardar los log de la fecha actual.
No veo referencias al compresor y cuando dices "El drama es que necesito luego que los archivos que están en /logs, me los vacíe..." no sé muy bien cual es el "drama". Si después de comprimirlos quieres borrarlos puedes usar el comando DEL que eliminaría el archivo. Si necesitas que borre el contenido pero mantenga el archivo podrías hacerlo con
ECHO. > archivo.log
(El archivo contendría una única línea en blanco hasta que empezara a llenarse).
Si lo que quieres es otra cosa y simplemente no te he entendido bien tendrás que intentar explicármelo de nuevo.
Saludos,
GGG
¿Hola experto como andas?
Mil disculpas por la redacción, seguramente fue eso...
Te explico paso por paso lo que quiero lograr hacer...
Los logs del servidor se guardan en C:/xampp/apache/logs/
la idea es comprimir el contenido de esa carpeta en un solo archivo poniendole la fecha
y moviendo dicho archivo comprimido a c:/xampp/apache/backup_logs
Luego de haber realizado esto, lo que resta es vaciar el contenido de eso archivos que se encuentran en c:/xampp/apache/logs, así el servidor puede seguir escribiendo los sucesos que ocurren...
Cualquier duda, avisame nomas..:)
Espero tu respuesta
Saludos
Diego
Doy por hecho que conseguir el backup comprimido (con la fecha incluida) no te supone ningún problema y, como dices, lo que falta es vaciar el contenido de los archivos que has guardado en el comprimido (con fecha).
Si es así solo habría que aplicar lo que ya te dije. Para cada archivo a vaciar basta con incluir una línea con
Echo. > Nombrearchivo
En el que "nombrearchivo" sería el nombre de cada archivo a vaciar. Con esto dejas los archivos vacíos (salvo una línea en blanco al principio) y el proceso que incluye los sucesos podrá volver a llenarlos.
Espero que con esto se te resuelva el problema. Si no fuera así dime que es lo que falta.
Saludos,
GGG

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas