Frage Äquivalent von Logrotat auf OSX


Ist Logrotat versteckt sich irgendwo auf OSX, oder gibt es ein Äquivalent? Es ist nicht in /usr/sbin.


49
2018-01-24 00:37


Ursprung


Warum der Downvote? - Steve Bennett
Ich weiß nicht, warum Sie einen Downvote bekommen haben, also habe ich ihn aufgewertet. Ich denke, es ist eine gute Frage. - Tom O'Connor
Ich merke, es gibt NewsSlog, 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 Log-Rotation standardmäßig als eine Reihe von Shell-Skripten in dort implementiert ist. Sehen Sie sich auch newsyslog (/etc/newsyslog.d und man page) an, um eine Möglichkeit zu finden, die auf der Dateigröße basiert. - malcolmpdx


Antworten:


Basierend auf Brian Armstrongs Antwort gibt es hier etwas mehr Erklärung und eine Korrektur. Dies behandelt das Protokoll, das von Postgres auf OSX erstellt wurde, das von Homebrew installiert wurde. Befindet sich /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 

Dies wird die Protokolldatei drehen, wenn sie 2 MB groß ist, 2 Archive behalten (für insgesamt 6 MB Speicher verwendet) und bzip2-komprimiert die Archive. Es benachrichtigt den Postgres-Prozess, die Protokolldateien erneut zu öffnen, sobald sie gedreht wurden. Dies ist erforderlich, um neue Protokolleinträge zu erhalten und den Festplattenspeicher freizugeben, ohne den Computer neu zu starten.

Wichtig zu beachten, dass die Größe in KB, nicht Bytes ist.

Sie können die Konfigurationsdatei (ohne Beeinflussung von Dateien) mit sudo newsyslog -nvv.

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


18
2017-11-16 18:37





OS X hat verschiedene Möglichkeiten, seine Logs je nach Art des Logs zu rotieren / ablaufen zu lassen:

  1. Für normale Protokolldateien (d. H. Textdateien, an die kontinuierlich angehängt wird), newsyslog kann sie basierend auf Größe oder Zeit drehen, obwohl es nicht so viele Optionen wie Logrotate zu haben scheint. Es wird von /etc/newsyslog.conf und /etc/newsyslog.d/* konfiguriert (im Allgemeinen sollten Sie Dateien zu /etc/newsyslog.d/ hinzufügen, um Protokolle zu seiner Verwaltungsliste hinzuzufügen).
  2. Das Syslog-System von OS X migriert von diesem Klartextformat in das Datenbankformat, hauptsächlich in / var / log / asl /. Ich verstehe dieses System noch nicht ganz, aber diese Datenbank scheint durchgespült zu werden Aslmanager, die von /etc/asl.conf konfiguriert wird.
  3. Bei Verzeichnissen, bei denen einzelne Protokolleinträge als separate Dateien hinzugefügt wurden (hauptsächlich / Library / Logs / CrashReporter /), werden die Dateien mit /etc/periodic/daily/100.clean-logs gelöscht. Seine Richtlinien (welche Verzeichnisse zu scannen sind und wie lange Dateien verlassen werden sollen) sind in /etc/defaults/periodic.conf konfiguriert, aber wenn Sie diese überschreiben / ändern wollen, sollten Sie /etc/periodic.conf.local anlegen und Ihre Anpassungen vornehmen Dort.

Wenn das, was Sie drehen möchten, nicht zu einem dieser Modelle passt, können Sie Ihre eigenen Skripte zu / etc / periodic / daily / hinzufügen (die jeden Morgen um 3:15 Uhr ausgeführt werden), / etc / periodic / weekly / (jeden Samstagmorgen um 3:15 Uhr) oder / etc / periodisch / monatlich / (jeden Monat um 5:30 Uhr).


19
2018-01-24 06:14





newsyslog läuft automatisch auf OSX, ich benutze eine solche Konfigurationsdatei in /etc/newsyslog.d/rails_apps.conf um meine Entwickler-Log-Dateien 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

10
2018-02-12 04:41



Größe ist in K, und ein ":" ist für Besitzer: Gruppe erforderlich, auch wenn sie leer sind - Bryan Ash


Sie können logrotate über Homebrew erhalten. Hier sind meine Notizen von der Einrichtung.

Installieren

brew install logrotate

Konfigurieren Sie die Protokollrotation

Protokollrotationskonfigurationsdateien sind in /usr/local/etc/logrotate.d/

Konfigurationsdatei bearbeiten Z.B. Ich wollte 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


7
2017-08-15 21:18





Eine Möglichkeit, es zu tun:

http://blog.cantremember.com/logrotate-mac-os-launch-daemon-mit-legacy-macport/


0
2018-01-24 12:44