Generador de Configuraciones Linux Logrotate (Retención y Compresión)
SysAdmin y DevOps

Generador de Configuraciones Linux Logrotate (Retención y Compresión)

Genere archivos de configuración para /etc/logrotate.d/ listos para producción con rotación diaria/semanal, compresión gzip, dateext, límites de tamaño y scripts postrotate.

Privacidad 100% del lado del cliente
Cero transmisión al servidor
Plantillas:
Directivas y Parámetros de Logrotate
Archivo de destino y ubicación/etc/logrotate.d/nginx
Frecuencia de rotación y límites de retenciónMantiene 14 archivos rotados
Compression & Timestamping (dateext)~85% de reducción de espacio
Permisos de archivo y seguridad de procesoscopytruncate vs create
Reload Signals & Scripts (postrotate)
Se ejecuta tras la rotación
Se ejecuta antes de la rotación
/var/log/nginx/*.log {
    daily
    rotate 14
    maxage 30
    missingok
    notifempty
    compress
    delaycompress
    dateext
    dateformat -%Y%m%d
    dateyesterday
    create 0640 www-data adm
    sharedscripts
    postrotate
        [ -f /var/run/nginx.pid ] && kill -USR1 $(cat /var/run/nginx.pid)
    endscript
}
Rotación y Frecuencia
DAILY (14 copies)

Conserva hasta las generaciones especificadas antes de la expulsión automática.

Compresión y Almacenamiento
Gzip (delaycompress)

Estimated ~85% disk storage savings with background gzip.

Permisos y Ciclo de Vida
create 0640 www-data

Atomic file rotation with new file recreation and custom permissions.

Generación 100% en Cliente

Sin subidas al servidor. Sus rutas de logs, scripts personalizados y comandos se procesan de forma privada en su navegador.

Especificación Logrotate Completa

Soporte nativo para copytruncate, delaycompress, marcas de tiempo dateext, umbrales de tamaño, sharedscripts y directiva su.

Listo para Producción

Genere archivos listos para /etc/logrotate.d/, comandos de prueba en seco 'logrotate -d' y scripts de despliegue en Bash.

Referencia técnica y guía de arquitectura

Generador de Configuraciones Linux Logrotate (Retención y Compresión) — Guía de referencia

Genere archivos de configuración para /etc/logrotate.d/ listos para producción con rotación diaria/semanal, compresión gzip, dateext, límites de tamaño y scripts postrotate.

Parámetros clave y controles

rotateDirectiva

Define el número de generaciones archivadas que se conservan antes de eliminar los registros más antiguos.

Por defecto: 4
frequencyDirectiva

Especifica el intervalo de rotación programado: daily (diario), weekly (semanal), monthly (mensual) o yearly (anual).

Por defecto: weekly
compressDirectiva

Habilita la compresión gzip en archivos rotados para optimizar el almacenamiento en disco.

Por defecto: compress
delaycompressDirectiva

Pospone la compresión del registro rotado más reciente hasta el siguiente ciclo para evitar bloqueos de escritura activos.

Por defecto: delaycompress
createDirectiva

Establece los permisos (modo octal), usuario y grupo al recrear el archivo de registro inmediatamente tras la rotación.

Por defecto: 0640 root adm
copytruncateDirectiva

Copia el archivo de registro y lo trunca a cero bytes en su lugar para procesos que no pueden cerrar sus descriptores de archivo.

Por defecto: desactivado
postrotateBloque

Comandos de shell que se ejecutan al completar la rotación, comúnmente utilizados para recargar demonios (ej. systemctl reload).

Por defecto: opcional

Consejos profesionales y mejores prácticas

Servicios como Nginx o PostgreSQL

Servicios como Nginx o PostgreSQL continúan escribiendo en descriptores abiertos hasta recibir una señal de recarga. delaycompress evita comprimir archivos que aún están recibiendo escrituras activas.

Al apuntar a múltiples archivos como

Al apuntar a múltiples archivos como /var/log/nginx/*.log, omitir sharedscripts provoca que el script postrotate se ejecute una vez por cada archivo coincidente, provocando sobrecargas innecesarias.

Pruebe cualquier configuración con

Pruebe cualquier configuración con 'logrotate -d /etc/logrotate.d/myapp' antes de desplegarla. La opción -d valida la sintaxis y muestra las operaciones planeadas sin modificar el disco.

Existe una pequeña ventana de tiempo

Existe una pequeña ventana de tiempo entre la copia y el truncado donde pueden perderse líneas de registro entrantes. Prefiera señales de recarga (USR1/SIGHUP) si la aplicación lo admite.

Errores comunes y solución de problemas

Error 'error: skipping ... parent directory has insecure permissions'

Logrotate rechaza la ejecución si los archivos de configuración o los directorios tienen permisos de escritura para grupos u otros. Aplique 'chmod 0644 /etc/logrotate.d/myapp' y asegure el directorio con 0755 o 0750.

La aplicación continúa escribiendo en el archivo rotado .1 en lugar del nuevo archivo

Linux asocia la escritura a números de inodo abiertos y no a nombres de archivo. Añada un bloque postrotate con 'systemctl reload <servicio>' para reabrir los descriptores, o active copytruncate.

El registro rota con demasiada frecuencia o fuera de calendario

Verifique si se configuraron directivas 'size' o 'maxsize' junto con intervalos temporales, e inspeccione el archivo de seguimiento en /var/lib/logrotate/status para auditar las fechas registradas.

Preguntas frecuentes (FAQ)

¿Dónde se deben ubicar los archivos de configuración de logrotate en Linux?▼

Las configuraciones de servicios específicos deben guardarse dentro de /etc/logrotate.d/ (por ejemplo, /etc/logrotate.d/myapp). El archivo maestro /etc/logrotate.conf procesa automáticamente este directorio.

¿Cuál es la diferencia técnica entre create y copytruncate?▼

'create' renombra el archivo activo y crea un nuevo archivo vacío, exigiendo que el proceso reabra su descriptor mediante una señal. 'copytruncate' copia el archivo y trunca el original in situ a 0 bytes, sin requerir reinicios pero con un riesgo mínimo de desfase.

¿Qué ventajas aporta la directiva dateext sobre la numeración secuencial?▼

Al activar 'dateext', los archivos rotados reciben sufijos de fecha (YYYYMMDD) en lugar de índices cambiantes (.1, .2.gz). Esto evita que los archivos históricos cambien de nombre en cada rotación, facilitando la recolección con Fluentd o Datadog.

¿Cómo forzar la ejecución inmediata de logrotate para pruebas o liberar espacio?▼

Ejecute 'logrotate -vf /etc/logrotate.d/myapp'. La opción -v proporciona información detallada en consola y -f (force) obliga a la rotación inmediata ignorando los límites de tiempo y tamaño.

¿Por qué es obligatoria la directiva su en distribuciones Linux modernas?▼

Cuando el directorio de logs pertenece a un usuario sin privilegios de root (como www-data o mysql), logrotate exige la directiva 'su <usuario> <grupo>' para revocar privilegios de superusuario y evitar ataques por enlaces simbólicos.

Herramientas y utilidades relacionadas

Todas las herramientas →
Guía de Desarrollo del Generador de Configuración YAML de Ubuntu NetplanDesarrollo

Genere configuraciones netplan YAML para Ubuntu 20.04/22.04/24.04: IPs estáticas, DHCP, servidores DNS, rutas de puerta de enlace, bridges y bonds.

Abrir herramienta→
Guía de Desarrollo: Generador de Modelos Python SQLAlchemy 2.0 desde SQL DDLDesarrollo

Convierta sentencias SQL CREATE TABLE en modelos fuertemente tipados de Python SQLAlchemy 2.0 DeclarativeBase con anotaciones Mapped y mapped_column.

Abrir herramienta→
Guía para Desarrolladores: Generador de Modelos Struct GORM para Golang desde SQL DDLDesarrollo

Convierta esquemas SQL CREATE TABLE en definiciones de estructuras struct de Golang con etiquetas GORM, etiquetas JSON y tipos Go fuertemente tipados.

Abrir herramienta→
Guía de Desarrollo: Generador de Modelos Sequelize TypeScript desde SQL DDLDesarrollo

Referencia técnica para desarrolladores sobre la conversión de DDL SQL CREATE TABLE en modelos tipados Sequelize TypeScript, definiciones DataTypes, atributos CreationOptional y declaraciones Model.init.

Abrir herramienta→
Json To Elixir Ecto Referencia para DesarrolladoresDesarrollo

Guía técnica y de configuración arquitectónica para compilar cargas JSON en esquemas Elixir Ecto de producción, migraciones, changesets y typespecs de Dialyzer.

Abrir herramienta→
Guía de Desarrollo: Generador de Case Classes de JSON a Scala 3 y 2Desarrollo

Convierte cargas útiles JSON en case classes fuertemente tipadas para Scala con derivación automática de códecs para Circe, Play JSON o zio-json.

Abrir herramienta→