【问题标题】:list of reserved variables in mib2cmib2c 中的保留变量列表
【发布时间】:2017-07-10 12:45:14
【问题描述】:

在哪里可以找到 mib2c“语言”的保留变量名称列表?我的意思是here 未描述的可能变量,例如 ${name},它计算为作为参数传递给 mib2c.c 的 OID 名称。

  1. 还有其他类似的变量吗?
  2. 是否有一个带有传递给 mib2c 的 .conf 文件的名称。

【问题讨论】:

  • @ikegami 我同意。问题3创建here

标签: perl mib


【解决方案1】:

net-snmp-5.7.3local/mib2c,预填充的变量由以下代码填充:

$outputName = $mibnode->{'label'} if (!defined($outputName));
$outputName =~ s/-/_/g;
$vars{'name'} = $outputName;
$vars{'oid'} = $oid;
$vars{'example_start'} = "    /*\n" .
"    ***************************************************\n" .
"    ***             START EXAMPLE CODE              ***\n" .
"    ***---------------------------------------------***/";
$vars{'example_end'} = "    /*\n" .
"    ***---------------------------------------------***\n" .
"    ***              END  EXAMPLE CODE              ***\n" .
"    ***************************************************/";

因此,您最终会得到以下预填充变量:

  • $name 是使用-f 选项(或$mibnode->{'label'},如果未使用-f 选项,则无论如何)指定的“输出前缀”,用下划线替换破折号。
  • $oidmib2c 的参数的值(在使用帮助中称为“mibNode”)。
  • $example_start$example_end 是硬编码字符串。

就是这样。

要使用-c 参数的值创建$config(如果未使用-c 选项,则为mib2c.conf),您可以更改mib2c 以将以下内容添加到上面显示的分配中:

$vars{config} = $configfile;

另外,我相信以下内容也会创建 $config,但传递给 -c 选项的值将带有目录名称:

@perleval $vars{config} = $configfile; 0@

您可以尝试通过以下方式获取原始值(假设原始值不包含/);

@perleval $vars{config} = $configfile =~ m{([^/]+)\z}s ? $1 : undef; 0@

完全未经测试。我对 SNMP 或 mib2c 一无所知。

【讨论】:

  • 谢谢。这是有道理的。看起来我无法在不编辑 mib2c 文件的情况下检索使用 -c 选项传递的 configfile 参数的值?我可以在 mib2c 的参数解析部分看到,配置文件的名称被分配给 $configfile 变量。但是,当我在 .config 文件中使用 $configfile 时,mib2c 将其评估为空。有解决办法吗?
  • 哦,我没有意识到我会在我的 .config 文件中放上最后两行之一,并带有 @perleval@。我现在明白了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多