OSX 上的 logrotate 等效程序

OSX 上的 logrotate 等效程序

日志旋转隐藏在 OSX 的某个地方,或者有类似的东西吗?它不在 中/usr/sbin

答案1

根据 Brian Armstrong 的回答,这里有一些解释和更正。这将处理 Homebrew 安装的 OSX 上的 postgres 创建的日志。位于/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

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

答案2

OS X 有多种方式来轮换/过期/等等其日志,具体取决于相关日志的类型:

  1. 对于常规日志文件(即连续附加内容的文本文件),新系统日志可以根据大小或时间旋转它们,尽管它似乎没有那么多选项。它由和logrotate配置(通常,您应该将文件添加到以将日志添加到其管理列表中)。/etc/newsyslog.conf/etc/newsyslog.d/*/etc/newsyslog.d/
  2. OS X 的 syslog 系统正在从纯文本格式迁移到数据库格式,主要是/var/log/asl/。我还不完全了解这个系统,但这个数据库似乎被助理经理,由 配置/etc/asl.conf
  3. 对于将单个日志“条目”添加为单独文件的目录(主要是/Library/Logs/CrashReporter/),这些文件将被清除/etc/periodic/daily/100.clean-logs。其策略(扫描哪些目录以及将文件保留多长时间)在中配置/etc/defaults/periodic.conf,但如果您想覆盖/更改它们,则应/etc/periodic.conf.local在那里创建并放置您的自定义设置。

如果您想要轮换的内容不适合任何这些模型,您可以添加自己的脚本/etc/periodic/daily/(每天早上 3:15 运行),/etc/periodic/weekly/(每周六早上 3:15 运行),或/etc/periodic/monthly/(每月第一天早上 5:30 运行)。

答案3

您可以通过 Homebrew 获取 logrotate。以下是我设置时的笔记。

安装

brew install logrotate

配置日志轮换

日志轮换配置文件位于/usr/local/etc/logrotate.d/

编辑配置文件。例如,我想轮换我引入的一些“/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

答案4

相关内容