Vraag Gelijk aan logrotate op OSX


is logrotate ergens verborgen op OSX, of is er een equivalent? Het zit er niet in /usr/sbin.


49
2018-01-24 00:37


oorsprong


Waarom het downvote? - Steve Bennett
Ik weet niet waarom je een downvote hebt gekregen, dus heb ik het opgevolgd. Ik denk dat het een goede vraag is. - Tom O'Connor
Ik merk dat er nieuwslogs zijn, maar dat is niet helemaal hetzelfde en vereist root. - Steve Bennett
Kan logrotate geporteerd worden, vraag ik me af. - Tom O'Connor
check / etc / periodic, ik denk dat logrotatie standaard geïmplementeerd wordt als een set shell-scripts daar. Kijk ook op newsyslog (/etc/newsyslog.d en man-pagina) voor een manier om dit te doen op basis van de bestandsgrootte. - malcolmpdx


antwoorden:


Gebaseerd op Brian Armstrong's antwoord, hier is iets met een beetje meer uitleg en een correctie. Dit behandelt het logboek gemaakt door postgres op OSX geïnstalleerd door Homebrew. Gevestigd 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 

Hiermee wordt het logbestand geroteerd wanneer het 2 MB groot wordt, worden twee archieven bewaard (voor een totaal van 6 MB opslagruimte) en bzip2-comprimeren de archieven. Het bericht het postgres-proces om de logbestanden opnieuw te openen nadat ze zijn geroteerd, hetgeen nodig is om nieuwe logboekvermeldingen te krijgen en om de schijfruimte daadwerkelijk vrij te maken zonder de machine opnieuw te starten.

Houd er rekening mee dat de grootte in kB is en niet in bytes.

U kunt het configuratiebestand (zonder bestanden te beïnvloeden) met behulp van sudo newsyslog -nvv.

newsyslog-documentatie bevindt zich hier: http://www.freebsd.org/cgi/man.cgi?newsyslog.conf(5). Ook gebruikt: 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 heeft verschillende manieren om zijn logs te roteren / vervallen / etc, afhankelijk van het type log in kwestie:

  1. Voor normale logbestanden (dat wil zeggen tekstbestanden die continu worden toegevoegd aan), newsyslog kan ze roteren op basis van grootte of tijd, hoewel het niet zoveel opties lijkt te hebben als logrotate. Het is geconfigureerd door /etc/newsyslog.conf en /etc/newsyslog.d/* (over het algemeen moet u bestanden toevoegen aan /etc/newsyslog.d/ om logboeken toe te voegen aan de managementlijst).
  2. OS syslogsysteem migreert van dit platte-tekstformaat naar database-indeling, voornamelijk in / var / log / asl /. Ik begrijp dit systeem nog niet helemaal, maar deze database lijkt te worden verwijderd aslmanager, die is geconfigureerd door /etc/asl.conf.
  3. Voor mappen met afzonderlijke logboekinvoeren die als afzonderlijke bestanden zijn toegevoegd (hoofdzakelijk / Bibliotheek / Logs / CrashReporter /), worden de bestanden verwijderd door /etc/periodic/daily/100.clean-logs. Het beleid (welke mappen om te scannen en hoelang bestanden moeten worden achtergelaten) is geconfigureerd in /etc/defaults/periodic.conf, maar als je ze wilt overschrijven / wijzigen, moet je /etc/periodic.conf.local maken en je aanpassingen maken er.

Als wat u wilt roteren niet past in een van deze modellen, kunt u uw eigen scripts toevoegen aan / etc / periodic / daily / (die elke ochtend om 15:15 uur worden uitgevoerd), / etc / periodic / weekly / (elke zaterdagochtend om 15.15 uur), of / etc / periodic / monthly / (eerste van elke maand om 5.30 uur).


19
2018-01-24 06:14





newsyslog wordt automatisch uitgevoerd op OSX, ik gebruik een configuratiebestand zoals dit in /etc/newsyslog.d/rails_apps.conf om mijn dev-logbestanden bijgesneden tot 5 MB te houden

# 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



de grootte is in K en een ":" is vereist voor de eigenaar: groep, zelfs als ze leeg zijn - Bryan Ash


U kunt logrotate krijgen via Homebrew. Hier zijn mijn aantekeningen van het opzetten van dit.

Installeren

brew install logrotate

Configureer logrotatie

Rotatieconfiguratiebestanden logboek zijn aanwezig /usr/local/etc/logrotate.d/

Configuratiebestand bewerken. Bijv. Ik wilde enkele "/var/log/tend_*.log" bestanden roteren die ik introduceerde:

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

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

Test het uit

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

Start dienst

sudo brew services start logrotate

Herstart service

sudo brew services restart logrotate


7
2017-08-15 21:18





Een manier om het te doen:

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


0
2018-01-24 12:44