我正在试图在FreeBSD 8.1虚拟机上运行logrotate。 我用pkg_add安装了logrotate,我创build了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
您在64位操作系统上安装了32位端口,反之亦然。
使用pkg_delete删除旧版本。 尝试通过pkg_add -r logrotate安装
而且,正如Stefan指出的那样,FreeBSD带有newsyslog,默认情况下它是启用的(只需编辑/etc/newsyslog.conf以根据需要添加日志文件),并且99%的人都需要。
编辑:
要为Apache的标准日志configurationnewsyslog,请将下列其中一个设置添加到configuration文件中。
对于每周的日志轮换,保持5周的价值,并且对旧文件进行压缩:
/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”部分在技术上是多余的)。 这是指定绝对时间,您也可以指定时间间隔。 如果您只在该字段中input“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被监禁或chroot,或者你需要另一个应用程序,或者你想要旧的日志文件在不同的位置…