我需要远程定期检查
Linux文件系统是否只能在许多服务器上安装.在这个实例中,我可以使用的唯一工具是通常的CLI脚本语言(BASH / Perl /
Python),SSH和SNMP.
到目前为止我的想法是:
>共享SSH密钥并远程执行mount命令,grep / awk-ing
对于给定挂载点上的RO标志.
>通过SNMP检查,虽然我不确定这些信息是否可用或者有多容易
是.
>尝试跨越文件或远程触摸文件.
SNMP方法是我能想到的最好/最干净的方法,但是我对如何执行此操作感到茫然,因为CLI SNMP似乎是一场噩梦,特别是如果我需要通过决策过程来查找基于a的索引给定挂载点.
理想情况下,我只想使用BASH(包括sed / awk / grep等)和SNMP来关闭它,但需要一些指导,从哪里开始! snmpd已在所有相关服务器上进行了instaled并配置为v2.
此脚本的最终用法将作为Nagios命令.
非常感谢您的帮助!
注意
我们已经有cacti / nagios设置监控100个服务器,我忘了在最初发布时提到这个!
解决方法
在你的snmpd.conf中查看exec参数.我使用它来远程轮询我的一些IRC服务器的用户数量,如下所示:
exec usercount-irc /home/irc/usercount-irc.sh
要对此进行轮询,请执行snmpwalk .1.3.6.1.4.1.2021.8,并获得以下内容:
# snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.8 UCD-SNMP-MIB::extIndex.1 = INTEGER: 1 UCD-SNMP-MIB::extNames.1 = STRING: usercount-irc UCD-SNMP-MIB::extCommand.1 = STRING: /home/irc/usercount-irc.sh UCD-SNMP-MIB::extResult.1 = INTEGER: 0 UCD-SNMP-MIB::extOutput.1 = STRING: 558 UCD-SNMP-MIB::extErrFix.1 = INTEGER: 0 UCD-SNMP-MIB::extErrFixCmd.1 = STRING:
有关详细信息,请查看http://linux.die.net/man/5/snmpd.conf的扩展代理功能部分!
编辑1:
UCD-SNMP-MIB:dskTable包含有关已装入卷和使用情况的信息.它位于OID .1.3.6.1.4.1.2021.9下,并记录在:
http://www.oidview.com/mibs/2021/UCD-SNMP-MIB.html
http://www.net-snmp.org/docs/mibs/ucdavis.html#dskTable
但我现在看到它不包含mountflags,所以你看不到只读.嘎.回到上面的脚本以及如何调用它! :P