Equivalente di logrotate su OSX


52

È logrotate nascosto da qualche parte su OSX, o c'è un equivalente? Non è dentro /usr/sbin.


Ho notato che c'è newsyslog, ma non è esattamente lo stesso e richiede root.
Steve Bennett,

Mi chiedo logrotate può essere portato.
Tom O'Connor,

controlla / etc / periodic, credo che la rotazione del registro sia implementata di default come un insieme di script di shell. Guarda anche newsyslog (/etc/newsyslog.d e la pagina man) per un modo di farlo basato sulla dimensione del file.
malcolmpdx,

grazie per i suggerimenti - ci sono davvero script in / etc / periodic
Steve Bennett

@SteveBennett In che altro modo le persone otterranno i loro badge "Critici"? Alcune persone sono qui solo per i badge e la reputazione, non lo sapevi.
Mark Fisher,

Risposte:


23

Sulla base della risposta di Brian Armstrong, ecco qualcosa con qualche spiegazione in più e una correzione. Gestisce il registro creato da Postgres su OSX installato da Homebrew. Situato a /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 

Questo ruoterà il file di registro quando raggiunge le dimensioni di 2 MB, mantiene 2 archivi (per un totale di 6 MB di spazio di archiviazione utilizzato) e bzip2-comprime gli archivi. Avviserà il processo Postgres di riaprire i file di registro una volta ruotati, il che è necessario per ottenere nuove voci di registro e liberare effettivamente lo spazio su disco senza riavviare la macchina.

Importante notare che la dimensione è in KB, non in byte.

È possibile testare il file di configurazione (senza influire su alcun file) utilizzando sudo newsyslog -nvv.

La documentazione di newsyslog si trova qui: http://www.freebsd.org/cgi/man.cgi?newsyslog.conf(5) . Utilizzato anche: http://www.redelijkheid.com/blog/2011/3/28/adding-custom-logfile-to-os-x-server-log-rotation.html


21

OS X ha diversi modi per ruotare / scadere / ecc. I suoi registri, a seconda del tipo di accesso in questione:

  1. Per i file di registro regolari (ovvero i file di testo che vengono continuamente aggiunti), newsyslog può ruotarli in base alle dimensioni o al tempo, sebbene non sembri avere tante opzioni quante logrotate. È configurato da /etc/newsyslog.confe /etc/newsyslog.d/*(in genere, è necessario aggiungere file /etc/newsyslog.d/per aggiungere registri al suo elenco di gestione).
  2. Il sistema syslog di OS X sta migrando da questo formato di testo normale al formato di database, principalmente in /var/log/asl/. Non capisco ancora del tutto questo sistema, ma questo database sembra essere eliminato da aslmanager , che è configurato da /etc/asl.conf.
  3. Per le directory che hanno "voci" di registro individuali aggiunte come file separati (principalmente /Library/Logs/CrashReporter/), i file vengono eliminati da /etc/periodic/daily/100.clean-logs. I suoi criteri (in quali directory scansionare e per quanto tempo lasciare i file) sono configurati /etc/defaults/periodic.conf, ma se vuoi sovrascriverli / cambiarli dovresti creare /etc/periodic.conf.locale mettere lì le tue personalizzazioni.

Se ciò che vuoi ruotare non si adatta a nessuno di questi modelli, puoi aggiungere i tuoi script a /etc/periodic/daily/(che verranno eseguiti ogni mattina alle 3:15), /etc/periodic/weekly/(ogni sabato mattina alle 3:15), o /etc/periodic/monthly/(prima di ogni mese alle 5:30).


11

newsyslogviene eseguito automaticamente su OSX, utilizzo un file di configurazione come questo /etc/newsyslog.d/rails_apps.confper mantenere i file di registro degli sviluppatori ridotti a 5 MB

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

la dimensione è in K ed è richiesto un ":" per il proprietario: gruppo anche se sono vuoti
Bryan Ash

9

Puoi ottenere logrotate tramite Homebrew. Ecco i miei appunti dall'impostazione.

Installare

brew install logrotate

Configurare la rotazione del registro

Sono presenti i file di configurazione della rotazione del registro /usr/local/etc/logrotate.d/

Modifica il file di configurazione. Ad esempio, volevo ruotare alcuni file "/var/log/tend_*.log" che ho introdotto:

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

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

Provalo

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

Avvia il servizio

sudo brew services start logrotate

Riavvia il servizio

sudo brew services restart logrotate


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.