这个问题有点类似于这个但似乎最有帮助的答案是 Ubuntu 特有的,并且运行在 OSX 10.6.8 上。
使用此日志子句:
logging {
category default {
_default_log;
};
channel _default_log {
file "/var/chroot/named/var/log/query.log";
severity info;
print-time yes;
};
};
我在 system.log 中收到此错误:
isc_log_open ‘/var/chroot/named/var/log/query.log’ 失败:找不到文件
这篇文章介绍了 conf 文件中 bind9 的日志记录子句说:
文件“path_name”是一个带引号的字符串,定义日志文件的绝对路径,例如“/var/log/named/namedlog.log”。
但是 conf 位于 jail 内/var/chroot/named/etc/named.conf
,我希望将日志写入/var/chroot/named/var/log/query.log
jail 内或/Library/Logs/named.log
jail 外的 (即日志在 chrooting 之前指向的位置)。无论我使用哪个都可以。
任何帮助深表感谢!
答案1
由于您的绑定是在监狱 chroot 内运行,因此您的路径应该与它相关。
对于您的 chrooted bind,/
目录从 开始/var/chroot/named
,因此您应该将文件名更改为/var/log/query.log
并确保 bind 具有写入 的权限/var/log
。
另外,您可以将日志写入两个文件。如果上述更改有效,您可以在 chroot 之外使用以下命令将两个文件(/var/chroot/named/var/log/query.log
和)链接为一个:/Library/Logs/named.log
$ ln /var/chroot/named/var/log/query.log /Library/Logs/named.log
这样做会在两个位置提供相同的内容。但是,请注意,删除一个文件不会删除另一个文件,但清空该文件会同时删除两个文件。因此,如果您使用logrotate
或类似程序,则需要轮换两个文件并确保每次都重新创建链接。
答案2
将指令中的文件名更改为 /var/log/query.log.....您位于以 /var/chroot/named 作为其根的 chroot 区域。