2012-03-05 10 views
6

Tengo un problema en el que los registros de Apache crecen desproporcionadamente en varios servidores (Linux CentOS 5) ... Eventualmente inhabilitaré el registro por completo, pero por el momento necesito una solución rápida para recuperar el disco duro. Espacio del disco.Borrando grandes registros de dominio Apache

He intentado usar el echo " " > /path/to/log.log o la * > /path/to/log.log pero llevaría demasiado tiempo y casi bloquear el servidor como los registros son tan grandes como 100 GB

Eliminación de los archivos trabaja rápido, pero mi pregunta es, ¿será esto causa un problema cuando reinicio Apache. Mis servidores están en vivo y llenos de usuarios, así que no puedo bloquearlos.

Su ayuda es apreciada.

+0

'>/ruta/a/log.log' hará que el archivo esté vacío. – kev

+0

Nunca debe deshabilitar el registro. Necesitarás esa información algún día. Solo enciende logrotate. Solucionará el problema al mismo tiempo que le proporciona registros recientes de estadísticas y análisis forense. –

Respuesta

21

utilizar el comando truncate

truncate -s 0 /path/to/log.log 

A más largo plazo se debe utilizar logrotate para mantener los registros de salir de la mano.

+0

Parece que sabe exactamente de lo que está hablando, pero para reiterar, este comando truncado no debería requerir grandes cantidades de CPU para truncar el archivo ... ya que los intentos anteriores, como se mencionó anteriormente, no fueron del todo agradables ... Gracias por su ayuda. –

+0

Mi linux box dice que el comando truncar no se encuentra .... –

+2

cat/dev/null> /path/to/log.log también funcionará. –

1

Prueba esto:

cat /dev/null > /path/to/log.log 
+0

Funciona pero mata a la CPU –

1
mv /path/to/log.log /path/to/log.log.1 

hacer esto para su acceso, de error y si usted es realmente hacerlo en prod, vuelve a escribir registros. Esto no afecta a Apache en * nix, ya que el archivo está abierto. Luego reinicia Apache. Sí, sé que dije reiniciar, pero esto generalmente demora alrededor de un segundo, por lo que dudo que alguien lo note o lo culpe a la red. El Apache reiniciado se ejecutará con un nuevo conjunto de archivos de registro.

En cuanto a los registros actuales, la OMI que necesita para mantener al menos los últimos 3 meses registros de errores, y 1 mes de registros de acceso, pero mira a su volumetría para decidir su áspera por los volúmenes de la semana para los registros de acceso y errores . No truncar los archivos anteriores. Si es necesario, haz una buena cola con el gzip -c de estos a los archivos. Si desea dividir el uso de un bucle haciendo una cola | head | gzip usando la opción --bytes=nnG. De acuerdo, se dividirá en una línea impar, pero eso es mejor que eliminar el lote como sugiera.

Por supuesto, puede eliminar el lote como usted y otros proponen, pero ¿qué va a hacer si se da cuenta de que el sitio ha sido pirateado recientemente? "Lo siento, es demasiado tarde, ¡he borrado la evidencia!"

Entonces, por amor de Dios, implemente un régimen logrotate.

Cuestiones relacionadas