【发布时间】:2016-02-05 13:59:24
【问题描述】:
短版:
有没有更好的方法来写下面的支票?
./check_snmp -H x.x.x.x -o oidstring -C public | awk '{print $4}' | sed 's/.$/.&/' | sed -e 's/$/ KB/'
长版:
我有一个输出三位数字的 Nagios 服务检查:
./check_snmp -H x.x.x.x -o oidstring -C public
SNMP OK - 711 | iso.oidstring=711
这是我按照自己的喜好格式化它并给出准确值所做的:
./check_snmp -H x.x.x.x -o oidstring -C public | awk '{print $4}' | sed 's/.$/.&/' | sed -e 's/$/ KB/'
71.1 KB
输出是完美的,我可以在 CentOS 环境中运行命令而不会出现问题,但是当尝试在 Nagios 中实施检查时,服务没有返回和值,而是我得到(在 stdout 上没有输出)。
奇怪的是,我什至可以在 Nagios 中成功地执行服务测试检查,但是显示主机和服务值的页面却给出了 (No output on stdout)。
我认为 Nagios 不喜欢我尝试格式化输出的方式,至少在 Web 方面是这样。
有没有一种“更简洁”的方式来写上面的支票?
提前致谢。
【问题讨论】:
-
我认为这不是您要问的问题,但是您可以不使用 sed 语句并将 awk 更改为
awk '{print ($4 / 10) " KB"}'。