Foros del Web » Administración de Sistemas » Apache »

Limpiar Logs de Apache en Windows

Estas en el tema de Limpiar Logs de Apache en Windows en el foro de Apache en Foros del Web. RESPALDAR Y LIMPIAR LOGS DE APACHE Bien Publico esto ya que una de las cosas que nos lleva mas labor y dolores de cabeza son ...
  #1 (permalink)  
Antiguo 10/07/2009, 12:59
 
Fecha de Ingreso: junio-2009
Mensajes: 5
Antigüedad: 14 años, 10 meses
Puntos: 0
De acuerdo Limpiar Logs de Apache en Windows

RESPALDAR Y LIMPIAR LOGS DE APACHE

Bien Publico esto ya que una de las cosas que nos lleva mas labor y dolores de cabeza son los fulanos logs que nos sirven para poder establecer ciertas cooerencias en los programas o aplicciones que los usan, asi podemos detectar errores o posibles filtros de intrusos y demas cosas, Ademas nos permite no tener Logs de 50 o 300 MB lo cual son bastante dificiles de revisar.

NOTA1: Lastima que no se permiten subir (adjuntar) Archivos asi que tendre que copiar todo el código en el articulo asi que no se asusten por lo largo.

NOTA2: Se asume que
  • * Este articulo esta basado en el servicio apache sobre windows instalado con wamp Server
  • * Conocimiento basico sobre tareas programadas de windows
  • * Conocimiento Básico sobre scripts por lotes .bat (shell de windows)
  • * Todo lo anterior no es estricto puede leerlo y usarlo cualquiera que lo necesite y este interesado
  • * Tambien pueden PM (private messaje) si lo desean o tienen algun problemilla si puedo con gusto les ayudo ^·^

Bien Comenzamos.


Notas preliminares
  • * El archivo lo deben Guardar en la carpeta logs del apache o del Wamp server Ejemplo c:\wamp\logs\
  • * El archivo lo pueden nombrar como ustes quieran (el codigo esta al Final)
  • * Sugiero que hagan Backup de todos sus logs o la carpeta completa ^·^ (Por si acaso pasa algo, no se sabe) =D
Los pasos:
  1. 1. Copiar el codigo que aparece al final para el archivo por lotes, y pegarlo en el Bloc de notas
  2. 2. Guardar el archivo con el nombre que les guste y con la extension .bat OJO revisen que no se grabe como .bat.txt si no no funciona tengan cuidado con eso, al guardar en el bloc de notas debe guardar como: tipo de archivo todos y le colocan la extension.
  3. 3. Una vez hecho eso lo Guardan en la carpeta de logs del apache ejemplo C:\wamp\logs\ (claro si usan wamp server)
  4. 4. Listo, ahora lo podemos probar (recordaron respaldar los datos? si: sigue; no: respalda entonces) dale doble click o seleccionalo y dale enter se ejecuta el script y lo veras trabajar y veras el resultado (abajo explico)
  5. 5. Bien listo?, Lo agregamos a las Tareas programadas, Abres el sistema de tareas programadas de windows, deberia estar, en Inicio->Programas->Accesorios->Herramientas de Sistea Tambien puede estar en las Herramientas Administrativas si es un Windows Server. Agrega una Nueva Tarea Selecciona el Archivo y le colocas el tiempo que quieras Ejemplo puede ser cada 2 o 3 dias o cada domingo de la semana, etc tu decides, Elije la hora y listo; yo le tengo a cda 3 dias ya que es bastante el trafico que tenemos, pero en temporada de baja lo coloco en cada 4 o 5 asi no se generan tantos archivos,
  6. 6. Listo Ya tienes la tarea ahora solo toca esperar la próxima Ejecución de la tarea.
Que hace el Script

(HAHAHA NOO no hace bakcports en el Servidor ni nada parecido =( por favor!!! )
Es simple, dado que el shell de lotes de windows no ofrece muchas opciones lo hice simple y bueno necesitab algo rápido, pero este script se puede mejorar e implementar en cualquier cosa un vbscript de windows, en php, en asp, en visual basic , VC++ ETC lo que quieran la idea es la básica, luego lo publicare en php puesto que me parece en nuestro caso es la herramienta que usamos, pues mucho mejor herramienta para esto.

Bien el funcionamiento:
  • * Lo primero que hace es Detener el servicio de Apache claro si usas WAMPSERVER ese es el nombre del servicio de lo contrario deberias cambiarlo
  • Código:
          net stop "wampapache" >>cleanlog.log
    
  • * Luego toma los Archivos principales del Apache estos son "Access.log", Apacheerror.log", "phperror.log" (en caso que usen php claro) y los renombra en "AccessN.log", "ApacheerrorN.log", "phperror_N.log", donde N: son numeros del 1 al 23, osea genera solo hasta 23 reslpdos consecutivos sin supervisión es decir hasta 23 veces ejecutado sin acordarte que esta eso funcionando, OJO se puede llevar facilmente a 30 o mas si quieres Da igual.
  • * Luego de generar las Copias de los Archivos, los Elimina. los copia y elimina porque tuve algunos inconvenientes al renombrar y no funcionaba bien.
  • * Por ultimo Reinicia el Servicio Apache Claro esta.
  • Código:
          net start "wampapache" >>cleanlog.log
    
  • * Todo esto lleva un control en un Archivo llamdo cleanlog.log los Valores ">>" sirven para asignar al archivo el contenido de lo que hace asi que si ocurre algun error pues ahi lo ven asi que hace un log de lo que hace ^.^

Eso es todo, Facil.
CONSEJO Luego les Sujieron que cuando le hagan el mantenimiento osea "REVISEN", renombren los archivos logs con las fechas que tiene el archivo al ser creado o moficado como prefieran, y los guarden en unas carpetas con los nombres del mes; por ejmeplo: "Access10.log" lo renombran a "Access230609.log" y lo almacenan en la carpeta "Junio2009" asi tendran todo bien organizado, les ira mucho mucho mucho mejor...

Ahora Pueden modificar el script si desean para incrementar los numeros de respaldos generados, de la siguiente manera
la ultima linea que genera los numeros es
Código:
if not exist "C:\wamp\logs\access_23.log" goto siguiente23
AGREGUEN otra
ejemplo

Código:
if not exist "C:\wamp\logs\access_24.log" goto siguiente24
Luego Agregan una "etiqueta" asi le llaman como la que sigue

Código:
:siguiente24
set n=24
GOTO Ejecutar
Eso lo agregan al Final de todas las demas eqiquetas que encontraran la ultima es la :Siguiente23

REFERENCIAS
WAMP SERVER
COMPRESION WEB EN APACHE
  #2 (permalink)  
Antiguo 10/07/2009, 13:00
 
Fecha de Ingreso: junio-2009
Mensajes: 5
Antigüedad: 14 años, 10 meses
Puntos: 0
De acuerdo EL CODIGO DEL ARCHIVO limpiarlogs.bat

El Código Fuente del Script "limpiarlogs.bat":

Código:
REM Arhivo: "limpiarlogs.bat" Le pueden Cambiar el nombre al archivo si lo desean no tienen ninguna influencia
@echo off
set fecha=%date%
set hora=%time%
set n=1
CD c:\wamp\logs\

if not exist "C:\wamp\logs\access_1.log" goto Ejecutar
if not exist "C:\wamp\logs\access_2.log" goto siguiente2
if not exist "C:\wamp\logs\access_3.log" goto siguiente3
if not exist "C:\wamp\logs\access_4.log" goto siguiente4
if not exist "C:\wamp\logs\access_5.log" goto siguiente5
if not exist "C:\wamp\logs\access_6.log" goto siguiente6
if not exist "C:\wamp\logs\access_7.log" goto siguiente7
if not exist "C:\wamp\logs\access_8.log" goto siguiente8
if not exist "C:\wamp\logs\access_9.log" goto siguiente9
if not exist "C:\wamp\logs\access_10.log" goto siguiente10
if not exist "C:\wamp\logs\access_11.log" goto siguiente11
if not exist "C:\wamp\logs\access_12.log" goto siguiente12
if not exist "C:\wamp\logs\access_13.log" goto siguiente13
if not exist "C:\wamp\logs\access_14.log" goto siguiente14
if not exist "C:\wamp\logs\access_15.log" goto siguiente15
if not exist "C:\wamp\logs\access_16.log" goto siguiente16
if not exist "C:\wamp\logs\access_17.log" goto siguiente17
if not exist "C:\wamp\logs\access_18.log" goto siguiente18
if not exist "C:\wamp\logs\access_19.log" goto siguiente19
if not exist "C:\wamp\logs\access_20.log" goto siguiente20
if not exist "C:\wamp\logs\access_21.log" goto siguiente21
if not exist "C:\wamp\logs\access_22.log" goto siguiente22
if not exist "C:\wamp\logs\access_23.log" goto siguiente23

:siguiente2
set n=2
goto Ejecutar

:siguiente3
set n=3
goto Ejecutar

:siguiente4
set n=4
goto Ejecutar

:siguiente5
set n=5
goto Ejecutar

:siguiente6
set n=6
goto Ejecutar

:siguiente7
set n=7
GOTO Ejecutar

:siguiente8
set n=8
GOTO Ejecutar

:siguiente9
set n=9
GOTO Ejecutar

:siguiente10
set n=10
GOTO Ejecutar

:siguiente11
set n=11
GOTO Ejecutar

:siguiente12
set n=12
GOTO Ejecutar

:siguiente13
set n=13
GOTO Ejecutar

:siguiente14
set n=14
GOTO Ejecutar

:siguiente15
set n=15
GOTO Ejecutar

:siguiente16
set n=16
GOTO Ejecutar

:siguiente17
set n=17
GOTO Ejecutar

:siguiente18
set n=18
GOTO Ejecutar

:siguiente19
set n=19
GOTO Ejecutar

:siguiente20
set n=20
GOTO Ejecutar

:siguiente21
set n=21
GOTO Ejecutar

:siguiente22
set n=22
GOTO Ejecutar

:siguiente23
set n=23
GOTO Ejecutar

:Ejecutar

echo ************************ >>cleanlog.log
echo --%fecha% - %time%-- >>cleanlog.log
echo Iniciando LOG  %fecha%
echo Deteniendo servicio Apache >>cleanlog.log
echo Deteniendo servicio Apache 
net stop "wampapache" >>cleanlog.log

echo Limpiando los Logs.....  >>cleanlog.log
rem echo Limpiando los Logs..... 

echo Creando copias de Archivos: >>cleanlog.log
rem echo Renombrando: 
echo access.log >>cleanlog.log
rem echo access.log... 
rem rename c:\wamp\logs\access.log C:\wamp\logs\access_%n%.log >>cleanlog.log
copy c:\wamp\logs\access.log C:\wamp\logs\access_%n%.log >>cleanlog.log
echo Renombrado a: c:\wamp\logs\access.log C:\wamp\logs\access_%n%.log >>cleanlog.log

echo apache_Error... >>cleanlog.log
rem echo apache_Error... 
rem rename c:\wamp\logs\apache_error.log C:\wamp\logs\apache_error_%n%.log >>cleanlog.log
copy c:\wamp\logs\apache_error.log C:\wamp\logs\apache_error_%n%.log >>cleanlog.log
echo renombrado a: C:\wamp\logs\apache_error_%n%.log >>cleanlog.log

echo php_Error... >>cleanlog.log
rem echo php Error... 
rem rename c:\wamp\logs\php_error.log C:\wamp\logs\php_error_%n%.log >>cleanlog.log
copy c:\wamp\logs\php_error.log C:\wamp\logs\php_error_%n%.log >>cleanlog.log
echo Renombrado a: C:\wamp\logs\php_error_%n%.log >>cleanlog.log

echo mod_gzip.log... >>cleanlog.log
rem echo mod_gzip.log... 
rem rename c:\wamp\logs\mod_gzip.log C:\wamp\logs\mod_gzip_%n%.log >>cleanlog.log
copy c:\wamp\logs\mod_gzip.log C:\wamp\logs\mod_gzip_%n%.log >>cleanlog.log
echo Renombrado a: C:\wamp\logs\mod_gzip_%n%.log >>cleanlog.log

rem Archivo Errores Estu
rem echo ArchErrEstu... >>cleanlog.log
rem copy c:\wamp\logs\ArchErrEstu.log C:\wamp\logs\ArchErrEstu_%n%.log >>cleanlog.log
rem echo Renombrado a: C:\wamp\logs\ArchErrEstu_%n%.log >>cleanlog.log

rem Archivo de Errores ServAdmin
rem echo SERVADMINerr... >>cleanlog.log
rem copy c:\wamp\logs\SERVADMINerr.log C:\wamp\logs\SERVADMINerr_%n%.log >>cleanlog.log
rem echo Renombrado a: C:\wamp\logs\SERVADMINerr_%n%.log >>cleanlog.log

rem echo SERVANACOerr... >>cleanlog.log
rem copy c:\wamp\logs\SERVANACOerr.log C:\wamp\logs\SERVANACOerr_%n%.log >>cleanlog.log
rem echo Renombrado a: C:\wamp\logs\SERVANACOerr_%n%.log >>cleanlog.log

echo Eliminando los Logs: >>cleanlog.log

rem echo Eliminando los Logs: 
del c:\wamp\logs\access.log  >>cleanlog.log
del c:\wamp\logs\apache_error.log  >>cleanlog.log
del c:\wamp\logs\php_error.log  >>cleanlog.log
del c:\wamp\logs\mod_gzip.log  >>cleanlog.log
echo -- >>c:\wamp\logs\mod_gzip.log
rem del c:\wamp\logs\ArchErrEstu.log >>cleanlog.log
rem del c:\wamp\logs\SERVADMINerr.log >>cleanlog.log
rem del C:\wamp\logs\SERVANACOerr_%n%.log >>cleanlog.log

echo Reiniciando el Servicio Apache, espere.... >>cleanlog.log
rem echo Reiniciando el Servicio Apache, espere.... 

net start "wampapache" >>cleanlog.log

echo  --%fecha% - %time%-- >>cleanlog.log
echo ..::Proceso finalizado::.. >>cleanlog.log
  #3 (permalink)  
Antiguo 10/07/2009, 13:15
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: Limpiar Logs de Apache en Windows

interesante.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #4 (permalink)  
Antiguo 08/08/2009, 09:50
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
Respuesta: Limpiar Logs de Apache en Windows

Excelente, lo acabo de modificar para mi Xampp y me funciono de maravilla
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:55.