我正在尝试在 FreeBSD 8.1 虚拟机上运行 logrotate。我用 pkg_add 安装了 logrotate,我已经创建了 logrotate.config 文件并运行:
mkdir /var/lib/
touch /var/lib/logrotate.status
Run Code Online (Sandbox Code Playgroud)
现在当我这样做时:
/usr/local/sbin/logrotate -d /usr/local/etc/logrotate.conf
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ELF interpreter /libexec/ld-elf-so.1 not found
Abort
Run Code Online (Sandbox Code Playgroud)
文件 ld-elf-so.1 存在:
locate ld-elf.so.1
/libexec/ld-elf.so.1
/usr/libexec/ld-elf.so.1
/usr/share/man/man1/ld-elf.so.1.1.gz
Run Code Online (Sandbox Code Playgroud)
您在 64 位操作系统上安装了 32 位端口,反之亦然。
使用pkg_delete
删除旧版本。尝试通过安装pkg_add -r logrotate
此外,正如 Stefan 指出的那样,FreeBSD 带有 newsyslog,它默认启用(只需/etc/newsyslog.conf
根据需要编辑以添加日志文件),并且可以满足99% 的人需要的所有功能。
编辑:
要为 Apache 的标准日志配置 newsyslog,请将以下组之一添加到配置文件中。
对于每周日志轮换,保持 5 周的价值,并 bzip 旧文件:
/var/log/httpd-access.log 644 5 * $W6D0 JC /var/run/httpd.pid
/var/log/httpd-error.log 644 5 * $W6D0 JC /var/run/httpd.pid
Run Code Online (Sandbox Code Playgroud)
“$W6D0”告诉它周日早上第一件事就是轮换日志。对于每日,使用$D0
. 对于每月,使用$M1D0
. 格式是向后触摸阅读。例如,“$W6D0”的意思是“第 6 天的一周轮换,第 0 小时的一天的轮换”(“D0”部分在技术上是多余的)。这是指定绝对时间,您也可以指定间隔。如果您只是在该字段中输入“1”,它将每 1 小时轮换一次日志。
在达到 5MB 时旋转文件:
/var/log/httpd-access.log 644 5 5000 * JC /var/run/httpd.pid
/var/log/httpd-error.log 644 5 5000 * JC /var/run/httpd.pid
Run Code Online (Sandbox Code Playgroud)
文件大小字段以 KB 为单位指定。您还可以指定时间和大小,在这种情况下,当满足任一条件时,它将触发轮换。
如果您有任何其他特定需求,请直接说出来,例如 Apache 是否被监禁或 chroot,或者您需要另一个应用程序,或者您希望旧的日志文件位于不同的位置...
归档时间: |
|
查看次数: |
4583 次 |
最近记录: |