Entspricht Logrotate unter OSX

52

Ist logrotate Versteck irgendwo auf OSX, oder ist es ein Äquivalent? Es ist nicht in /usr/sbin.

Steve Bennett
quelle
Ich stelle fest, dass es newsyslog gibt, aber das ist nicht ganz dasselbe und erfordert root.
Steve Bennett
Kann logrotate portiert werden, frage ich mich.
Tom O'Connor
check / etc / periodic, ich glaube, dass die Protokollrotation dort standardmäßig als Satz von Shell-Skripten implementiert ist. Schauen Sie sich auch newsyslog (/etc/newsyslog.d und man page) an, um eine Möglichkeit zu finden, die auf der Dateigröße basiert.
Malcolmpdx
Vielen Dank für die Tipps - es gibt in der Tat Skripte in / etc / periodic
Steve Bennett
@SteveBennett Wie sonst bekommen die Leute ihre "Kritiker" -Ausweise? Manche Leute sind nur wegen der Abzeichen und des Rufs hier, wusstest du nicht?
Mark Fisher

Antworten:

23

Basierend auf der Antwort von Brian Armstrong, hier etwas mit etwas mehr Erklärung und einer Korrektur. Dies behandelt das von postgres unter OSX erstellte Protokoll, das von Homebrew installiert wurde. Befindet sich in /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 

Dadurch wird die Protokolldatei bei Erreichen einer Größe von 2 MB gedreht, es werden 2 Archive (für insgesamt 6 MB verwendeten Speicher) aufbewahrt und die Archive mit bzip2 komprimiert. Es benachrichtigt den Postgres-Prozess, die Protokolldateien nach dem Drehen erneut zu öffnen. Dies ist erforderlich, um neue Protokolleinträge zu erhalten und tatsächlich Speicherplatz freizugeben, ohne den Computer neu zu starten.

Es ist wichtig zu beachten, dass die Größe in KB und nicht in Bytes angegeben ist.

Sie können die Konfigurationsdatei (ohne Auswirkungen auf Dateien) mit testen sudo newsyslog -nvv.

Die newsyslog-Dokumentation finden Sie hier: http://www.freebsd.org/cgi/man.cgi?newsyslog.conf(5) . Auch verwendet: http://www.redelijkheid.com/blog/2011/3/28/adding-custom-logfile-to-os-x-server-log-rotation.html

Robin Daugherty
quelle
21

In OS X gibt es je nach Art des betreffenden Protokolls verschiedene Möglichkeiten, die Protokolle zu drehen / abzulaufen / usw.:

  1. Bei normalen Protokolldateien (dh Textdateien, an die kontinuierlich Anhänge angehängt werden) kann newsyslog sie basierend auf Größe oder Zeit drehen, obwohl es nicht so viele Optionen zu geben scheint wie logrotate. Es wird von /etc/newsyslog.confund konfiguriert /etc/newsyslog.d/*(im Allgemeinen sollten Sie Dateien /etc/newsyslog.d/hinzufügen, um Protokolle zu seiner Verwaltungsliste hinzuzufügen).
  2. Das Syslog-System von OS X migriert von diesem Nur-Text-Format in das Datenbankformat, hauptsächlich in /var/log/asl/. Ich verstehe dieses System noch nicht ganz, aber diese Datenbank scheint von aslmanager gelöscht zu werden , der von konfiguriert wird /etc/asl.conf.
  3. Bei Verzeichnissen, in denen einzelne "Protokolleinträge" (hauptsächlich /Library/Logs/CrashReporter/) als separate Dateien hinzugefügt wurden , werden die Dateien von gelöscht /etc/periodic/daily/100.clean-logs. Die Richtlinien (welche Verzeichnisse gescannt werden sollen und wie lange Dateien belassen werden sollen) sind konfiguriert. /etc/defaults/periodic.confWenn Sie sie jedoch überschreiben / ändern möchten, sollten Sie /etc/periodic.conf.localIhre Anpassungen dort erstellen und ablegen.

Wenn das, was Sie drehen möchten, für keines dieser Modelle geeignet ist, können Sie eigene Skripte hinzufügen /etc/periodic/daily/(die jeden Morgen um 3:15 Uhr ausgeführt werden), /etc/periodic/weekly/(jeden Samstagmorgen um 3:15 Uhr) oder /etc/periodic/monthly/(erstens) jeden Monat um 5:30 Uhr).

Gordon Davisson
quelle
11

newsyslog/etc/newsyslog.d/rails_apps.confLäuft automatisch unter OSX, verwende ich eine solche Konfigurationsdatei, um meine Entwicklungsprotokolldateien auf 5 MB zu beschränken

# logfilename                           [owner:group]   mode count size     when  flags [/pid_file] [sig_num]
/Users/barmstrong/code/**/log/*.log                     666  0     5242880  *     G
Brian Armstrong
quelle
Größe ist in K, und ein ":" ist für Eigentümer erforderlich: Gruppe, auch wenn sie leer sind
Bryan Ash
9

Sie können über Homebrew logrotieren. Hier sind meine Notizen zum Einrichten.

Installieren

brew install logrotate

Konfigurieren Sie die Protokollrotation

Konfigurationsdateien für die Protokollrotation befinden sich in /usr/local/etc/logrotate.d/

Konfigurationsdatei bearbeiten. Ich wollte zum Beispiel einige "/var/log/tend_*.log" -Dateien drehen, die ich eingeführt habe:

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

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

Probieren Sie es aus

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

Dienst starten

sudo brew services start logrotate

Starten Sie den Dienst neu

sudo brew services restart logrotate

broofa
quelle