logrotate隐藏在OSX的某个地方,还是有相当的? 它不在/usr/sbin
。
根据布莱恩·阿姆斯特朗的回答,这里有一些更多的解释和更正。 这处理由Homebrew安装的OSX上由postgres创build的日志。 位于/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
这会在日志文件大小达到2MB时进行轮换,保留2个文件(总共使用6MB的存储空间),并对压缩文件进行bzip2压缩。 它会通知postgres进程重新打开一次旋转的日志文件,这是获取新日志条目所必需的,并且在不重新启动计算机的情况下实际释放磁盘空间。
重要的是要注意,大小以KB为单位,而不是字节。
您可以使用sudo newsyslog -nvv
来testingconfiguration文件(不影响任何文件)。
newsyslog文档位于: http ://www.freebsd.org/cgi/man.cgi?newsyslog.conf(5 ) 。 还用于: http : //www.redelijkheid.com/blog/2011/3/28/adding-custom-logfile-to-os-x-server-log-rotation.html
OS X有几种方法来旋转/过期/等日志,具体取决于问题的日志types:
如果你想旋转的东西不适合任何这些模型,你可以添加你自己的脚本到/ etc / periodic / daily /(这将在每天凌晨3:15运行),/ etc / periodic / weekly / (每周六早上3:15)或/ etc / periodic / monthly /(每个月的第一个早上5:30)。
newsyslog
在OSX上自动运行,我在/etc/newsyslog.d/rails_apps.conf
使用这样的configuration文件来保持我的开发日志文件被修剪为5MB
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num] /Users/barmstrong/code/**/log/*.log 666 0 5242880 * G
你可以通过Homebrew获得logrotate。 这是我设置这个的笔记。
brew install logrotate
日志轮转configuration文件在/usr/local/etc/logrotate.d/
编辑configuration文件。 例如,我想旋转一些我介绍的“/var/log/tend_*.log”文件:
sudo vi /usr/local/etc/logrotate.d/tend.conf
内容:/ /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