我应该硬编码例如$ NAMESERVERHOSTADDRESS $的值吗?

我想用Nagios插件check_dns ,所以当我看看命令定义的时候

 define command { command_name check_dns command_line $USER1$/check_dns -H $HOSTADDRESS$ -s $NAMESERVERHOSTADDRESS$ -a $EXPECTEDIPADDRESS$ } 

我发现$NAMESERVERHOSTADDRESS$不是一个标准的macros ,所以我不知道该怎么把command_line放在服务定义中。

 define service { use generic-service name check_dns host_name ns.example.com service_description Checks DNS check_command check_dns contact_groups linux-admins } 

目标是让Nagios监视器主机询问ns.example.com来查找ns.example.com ,看看是否parsing到预期的IP。

我应该在命令定义中用我想要的值replace/硬编码$NAMESERVERHOSTADDRESS$

还是应该在服务定义中定义$NAMESERVERHOSTADDRESS$的值? 如果是的话,怎么样?

我的服务器中没有这样的定义。 您可以将定义更改为使用$ARGn$如:

 define command { command_name check_dns command_line $USER1$/check_dns -H $HOSTADDRESS$ -s $ARG1$ -a $ARG2$ } 

然后,你可以使用它的服务定义如下:

 define service { use generic-service name check_dns host_name ns.example.com service_description Checks DNS check_command check_dns!name_server!expected_address contact_groups linux-admins } 

您需要用实际值replacename_serverexpected_address