Tabla de contenidos
¿Cómo rotar los logs en Linux?
En primer lugar tenemos que comprobar que logrotate está instalado en el servidor o no. Vamos a gestionar los archivos de registro utilizando el logrotate.
Este método se puede utilizar en centos 6 también. Todos los comandos son los mismos y el proceso también es el mismo.
¿Cómo comprobar que logrotate está instalado?
whereis logrotate
Si logrotate no está instalado, entonces instálelo usando el siguiente comando. Omita este paso si ya está instalado.
yum update && yum install logrotate
Edite el archivo httpd.conf
vim /etc/httpd/conf/httpd.confinclude /etc/logrotate.d
Edita el archivo log rotate para el servidor apache
cd /etc/logrotate.d/httpd/var/log/httpd/*log {missingoknotifemptysharedscriptsdelaycompresspostrotate/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || trueendscript}/var/www/html/logs/*.log {dailyrotate 3size 10Mcompressdelaycompresspostrotate/bin/systemctl reload httpd reload > /dev/null 2>/dev/null || trueendscript}
Comprueba el log
que pasará si logrotate se ejecuta ahora. Intenta usar la opción -d (en realidad puedes ejecutar logrotate omitiendo esta opción):
logrotate -d /etc/logrotate.d/apache2.conf
Términos importantes de logrotate.
Rotar el log significa que después de un periodo de tiempo los logs antiguos son comprimidos en el archivo. Esto nos ayuda a mantener los logs de forma muy efectiva.
Salirok – no da error si falta el archivo de registro
notifempty – no gira el archivo de registro si está vacío
comprimir – Las versiones antiguas de los archivos de registro se comprimen con gzip(1) por defecto
tamaño – El archivo de registro se gira sólo si crece más de 20k
diario – asegura la rotación diaria
crear – crea un nuevo archivo de registro con permisos 600 donde el propietario y el grupo es el usuario root
copiar – Hace una copia del archivo de registro, pero no cambia el original en absoluto.
mail <email@address> – Cuando un registro es rotado fuera de la existencia, es enviado a la dirección.
olddir <directorio> – Los logs se mueven a <directorio> para su rotación.
postrotate/endscript – Las líneas entre postrotate y endscript se ejecutan después del log