Limitar el tamaño de un archivo de registro particular en Linux

Limitar el tamaño de un archivo de registro particular en Linux

Hay algunos archivos de registro que ocupan una gran cantidad de espacio y quiero restringirlos a 10 MB en Linux.

Por ejemplo: el archivo test.log no debe exceder los 10 MB; los registros deberían dejar de ir a ese archivo.

¿Puede compartir los posibles pasos o comandos para lograr esto?

Respuesta1

Inspirado porla respuesta de alex a una pregunta similar,sipuede controlar la ubicación del archivo de registro de modo que pueda colocarse en un directorio separado, luego puede crear un montaje en bucle respaldado por un archivo de un tamaño determinado. Las escrituras en ese subdirectorio estarán limitadas por el tamaño del archivo de respaldo. Esto comenzaría a complicarse si necesitara manejar varios archivos de registro.

## adjust the size to taste for filesystem overhead
dd if=/dev/zero of=./10mb.img bs=1M count=12 
/sbin/mkfs.ext4 10mb.img
mkdir logdir
sudo mount -t ext4 -o loop 10mb.img logdir

sudo dd if=/dev/urandom of=logdir/test.log
dd: writing to ‘logdir/test.log’: No space left on device
21033+0 records in
21032+0 records out
10768384 bytes (11 MB) copied, 2.3511 s, 4.6 MB/s

Respuesta2

¿Ayudaría un módulo emlog? lo veo mencionado enhttps://serverfault.com/questions/133320/turning-a-log-file-into-a-sort-of-circular-buffer, pero no estoy seguro de si encaja bien.

información relacionada