我开发了这个脚本程序:(程序名称是x1)
#!/bin/bash
/usr/bin/top -n 1 >/tmp/top1.log
echo ok
接下来是我在终端上运行它并获得正确回复的命令:
./x1
意思是当top -n 1>tmp/top1.log
的外部命令写入文件top1.log中,然后在输出中打印消息ok!
但是,如果我配置 snmpd.cof 并且该程序由 snmp 服务运行:
snmpwalk -v2c -c public 127.0.0.0 OID
外部命令top -n 1>/tmp/top1.log
不会被放入top1.log中,并且不会生成文件top1.log,只会在输出中打印消息ok。
事实上,top -n 1>/tmp/top1.log
命令无法通过 SNMP 服务运行。
最佳答案
我的 snmpd.conf :
syslocation Server Room
syscontact Sysadmin (root@localhost)
rwcommunity public 192.168.7.165
rwcommunity public 127.0.0.1
sh 1.3.6.1.4.1.999.4.1.4 public /tmp/x1
我使用( sh 和 exec )来运行!
关于linux - snmp 服务无法在 Linux 中正确运行我的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6008695/