nsupdate 无法处理输入文件

nsupdate 无法处理输入文件

在我的 Debian 测试服务器上,当我运行 nsupdate 命令并手动输入详细信息时,一切都正常。例如:

nsupdate -k /etc/bind/update.key
> update add PC1.direct.labo 3600 A 192.168.100.1
> send
> quit 

之后,我在我的区域文件中找到了该记录。 像那样

当我尝试使用输入文件时出现了问题,我们将其称为“order.dns”:

update add PC2.direct.labo 3600 A 192.168.100.2
show
send
quit 

并执行以下命令:

nsupdate order.dns -k /etc/bind/update.key

然后我得到update failed: REFUSED

查看图片

我究竟做错了什么?

答案1

nsupdate 使用 BSD 样式的选项解析,其中所有选项必须严格指定非选项(即位置)参数,如下所示:

nsupdate -k /etc/bind/update.key order.dns

在你的情况下,-k这是指定的文件名不被解释为选项,而是与之一起成为另一个位置参数order.dns(键文件名也是如此)。

如果这是一个接受多个文件的程序,您将收到类似“ File '-k' not found”的错误消息:

$ uname
NetBSD
$ cat -n test
     1  Line one
     2  Line two
     3  Line three
$ cat test -n
Line one
Line two
Line three
cat: -n: No such file or directory
$

但由于 nsupdate 仅接受一个文件名,因此其他位置参数将被忽略。

相关内容