logrotate se cache-t-il quelque part sur OSX, ou y a-t-il un équivalent? Ce n'est pas dans /usr/sbin
.
Basé sur la réponse de Brian Armstrong, voici quelque chose avec un peu plus d'explications et une correction. Cela gère le journal créé par postgres sur OSX installé par Homebrew. Situé à /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
Cela fera pivoter le fichier journal lorsqu'il atteindra 2 Mo, conservera 2 archives (pour un total de 6 Mo de stockage utilisé) et compressera bzip2 les archives. Il avertira le processus postgres de rouvrir les fichiers journaux une fois tournés, ce qui est nécessaire pour obtenir de nouvelles entrées de journal et libérer réellement l'espace disque sans redémarrer la machine.
Il est important de noter que la taille est en Ko, pas en octets.
Vous pouvez tester le fichier de configuration (sans affecter aucun fichier) en utilisant Sudo newsyslog -nvv
.
la documentation de newsyslog se trouve ici: http://www.freebsd.org/cgi/man.cgi?newsyslog.conf (5) . Également utilisé: http://www.redelijkheid.com/blog/2011/3/28/adding-custom-logfile-to-os-x-server-log-rotation.html
OS X a plusieurs façons de faire pivoter/expirer/etc ses journaux, selon le type de journal en question:
logrotate
. Il est configuré par /etc/newsyslog.conf
et /etc/newsyslog.d/*
(en général, vous devez ajouter des fichiers à /etc/newsyslog.d/
pour ajouter des journaux à sa liste de gestion)./var/log/asl/
. Je ne comprends pas encore complètement ce système, mais cette base de données semble être purgée par aslmanager , qui est configuré par /etc/asl.conf
./Library/Logs/CrashReporter/
), les fichiers sont purgés par /etc/periodic/daily/100.clean-logs
. Ses politiques (quels répertoires analyser et combien de temps laisser les fichiers) sont configurées dans /etc/defaults/periodic.conf
, mais si vous souhaitez les remplacer/les modifier, vous devez créer /etc/periodic.conf.local
et y mettre vos personnalisations.Si ce que vous souhaitez faire pivoter ne correspond à aucun de ces modèles, vous pouvez ajouter vos propres scripts à /etc/periodic/daily/
(qui aura lieu tous les matins à 3 h 15), /etc/periodic/weekly/
(tous les samedis matin à 3 h 15) ou /etc/periodic/monthly/
(le premier de chaque mois à 5h30).
newsyslog
s'exécute automatiquement sur OSX, j'utilise un fichier de configuration comme celui-ci dans /etc/newsyslog.d/Rails_apps.conf
pour conserver mes fichiers journaux de développement à 5 Mo
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/Users/barmstrong/code/**/log/*.log 666 0 5242880 * G
Vous pouvez obtenir logrotate via Homebrew. Voici mes notes de mise en place.
brew install logrotate
Les fichiers de configuration de la rotation des journaux sont dans /usr/local/etc/logrotate.d/
Modifier le fichier de configuration. Par exemple. Je voulais faire pivoter certains fichiers "/var/log/tend_*.log" que j'ai introduits:
Sudo vi /usr/local/etc/logrotate.d/tend.conf
Contenu: /var/log/tend_*.log { daily copytruncate rotate 3 size 10M compress }
Sudo logrotate -v -f /usr/local/etc/logrotate.d
Sudo brew services start logrotate
Sudo brew services restart logrotate
Une façon de le faire:
http://blog.cantremember.com/logrotate-mac-os-launch-daemon-with-legacy-macport/