FreeBSD 8.1 64bit logrotate-未找到 ELF 解释器 /libexec/ld-elf-so.1

FreeBSD 8.1 64bit logrotate-未找到 ELF 解释器 /libexec/ld-elf-so.1

我正在尝试在 FreeBSD 8.1 虚拟机上运行 logrotate。我使用 pkg_add 安装了 logrotate,创建了 logrotate.config 文件并运行:

mkdir /var/lib/

touch /var/lib/logrotate.status

现在我这样做:

/usr/local/sbin/logrotate -d /usr/local/etc/logrotate.conf

我收到此错误:

ELF interpreter /libexec/ld-elf-so.1 not found
Abort

文件 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

答案1

您在 64 位操作系统上安装了 32 位端口,反之亦然。

用于pkg_delete删除旧版本。尝试通过以下方式安装pkg_add -r logrotate

此外,正如 Stefan 所说,FreeBSD 附带了 newsyslog,它是默认启用的(只需根据/etc/newsyslog.conf需要编辑添加日志文件),可以满足 99% 的人的所有需求。

编辑:
要为 Apache 的标准日志配置 newsyslog,请将以下一组内容添加到配置文件中。

对于每周日志轮换,保留 5 周的数据,并对旧文件进行 bzip2 压缩:

/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

“$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

文件大小字段以 KB 为单位。您还可以同时指定时间和大小,这样当满足任一条件时,它就会触发轮换。

如果您有任何其他特定需求,请直接说出来,例如 Apache 是否被监禁或 chrooted,或者您需要另一个应用程序,或者您希望将旧日志文件放在不同的位置...

相关内容