Equivalente de logrotate en OSX


52

¿ Logrotate se esconde en algún lugar de OSX, o hay un equivalente? No está en /usr/sbin.


Noté que hay un registro de noticias, pero eso no es lo mismo y requiere root.
Steve Bennett

Se puede portar la rotación, me pregunto.
Tom O'Connor

check / etc / periodic, creo que la rotación de registros se implementa por defecto como un conjunto de scripts de shell allí. También mire newsyslog (/etc/newsyslog.d y la página de manual) para ver una forma de hacerlo según el tamaño del archivo.
malcolmpdx

gracias por los consejos - de hecho hay scripts en / etc / periodic
Steve Bennett

@SteveBennett ¿De qué otra forma las personas recibirán sus insignias de "Crítico"? Algunas personas solo están aquí por las insignias y la reputación, ¿no lo sabían?
Mark Fisher

Respuestas:


23

Según la respuesta de Brian Armstrong, aquí hay algo con un poco más de explicación y una corrección. Esto maneja el registro creado por postgres en OSX instalado por Homebrew. Ubicado en /etc/newsyslog.d/postgresql.conf:

# logfilename                           [owner:group]      mode count size(KB)  when  flags [/pid_file]                            [sig_num]
/usr/local/var/postgres/postgresql.log  :                  600  2     2048      *     J     /usr/local/var/postgres/postmaster.pid 

Esto rotará el archivo de registro cuando alcance un tamaño de 2 MB, mantenga 2 archivos (para un total de 6 MB de almacenamiento utilizado) y bzip2-comprima los archivos. Notificará al proceso de postgres para volver a abrir los archivos de registro una vez rotados, lo cual es necesario para obtener nuevas entradas de registro y para liberar realmente el espacio en disco sin reiniciar la máquina.

Es importante tener en cuenta que el tamaño está en KB, no en bytes.

Puede probar el archivo de configuración (sin afectar ningún archivo) usando sudo newsyslog -nvv.

La documentación de newsyslog se encuentra aquí: http://www.freebsd.org/cgi/man.cgi?newsyslog.conf(5) . También se utiliza: http://www.redelijkheid.com/blog/2011/3/28/adding-custom-logfile-to-os-x-server-log-rotation.html


21

OS X tiene varias formas de rotar / caducar / etc sus registros, dependiendo del tipo de registro en cuestión:

  1. Para los archivos de registro normales (es decir, archivos de texto que se agregan continuamente), newsyslog puede rotarlos según el tamaño o el tiempo, aunque no parece tener tantas opciones como logrotate. Está configurado por /etc/newsyslog.confy /etc/newsyslog.d/*(generalmente, debe agregar archivos /etc/newsyslog.d/para agregar registros a su lista de administración).
  2. El sistema syslog de OS X está migrando de este formato de texto plano al formato de base de datos, principalmente en /var/log/asl/. Todavía no entiendo completamente este sistema, pero esta base de datos parece estar purgada por aslmanager , que está configurado por /etc/asl.conf.
  3. Para los directorios que tienen "entradas" de registro individuales agregadas como archivos separados (principalmente /Library/Logs/CrashReporter/), los archivos se eliminan /etc/periodic/daily/100.clean-logs. Sus políticas (qué directorios escanear y cuánto tiempo dejar los archivos) están configurados /etc/defaults/periodic.conf, pero si desea anularlos / cambiarlos, debe crearlos /etc/periodic.conf.localy colocar sus personalizaciones allí.

Si lo que desea rotar no se ajusta a ninguno de estos modelos, puede agregar sus propios scripts a /etc/periodic/daily/(que se ejecutarán todas las mañanas a las 3:15 a.m.), /etc/periodic/weekly/(todos los sábados por la mañana a las 3:15 a.m.) o /etc/periodic/monthly/(primero de todos los meses a las 5:30 a.m.).


11

newsyslogse ejecuta automáticamente en OSX, uso un archivo de configuración como este /etc/newsyslog.d/rails_apps.confpara mantener mis archivos de registro de desarrollo recortados a 5 MB

# logfilename                           [owner:group]   mode count size     when  flags [/pid_file] [sig_num]
/Users/barmstrong/code/**/log/*.log                     666  0     5242880  *     G

el tamaño está en K, y se requiere un ":" para el propietario: grupo incluso si están en blanco
Bryan Ash

9

Puede obtener logrotate a través de Homebrew. Aquí están mis notas de configurar esto.

Instalar en pc

brew install logrotate

Configurar la rotación de registros

Los archivos de configuración de rotación de registros están en /usr/local/etc/logrotate.d/

Editar archivo de configuración. Por ejemplo, quería rotar algunos archivos "/var/log/tend_*.log" que presenté:

sudo vi /usr/local/etc/logrotate.d/tend.conf

Contenido: /var/log/tend_*.log { daily copytruncate rotate 3 size 10M compress }

Pruébalo

sudo logrotate -v -f /usr/local/etc/logrotate.d

Comienza el servicio

sudo brew services start logrotate

Reiniciar servicio

sudo brew services restart logrotate


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.