如何传递密码值字符串包含!在 nagios 命令中用于监视目的

How to pass password value string contains ! in nagios command for monitoring purpose

在 nagios cfg 中,如果我想将多个参数传递给命令,值由 !

分隔

我的问题是我试图传递给 nagios cfg 文件的密码包含 !,这导致 nagios 认为它​​是一个分隔符。 有没有其他方法可以更改分隔符或从字面上更改 !在密码字符串中? 例如

define service{
 use generic-service
 host_name 10.62.85.10
 service_description ESXi Hardware Check
 check_command check_esxi_hardware!root!Password123!!auto
}

nagios 认为 $ARG1$ 是 root $ARG2$ 是 Password123 而 $ARG3$ 是 null

其实我要传递的值是 $ARG1$是root $ARG2$是Password123! $ARG3$ 是自动

首先,您应该使用 Nagios 用户宏来存储密码等敏感信息。请查看您的 Nagios private/resource.cfg 文件以获取更多信息。

Nagios 使用 ! 分隔配置中的输入参数。这一切都很好,直到您需要在其中一个变量中使用 !$。此时需要对特殊字符进行转义。

您使用反斜杠“\”为 Nagios 配置文件中的 !$ 字符执行此操作。