现在,我正在开发一个SNMP网络服务器,我想从Windows中的MIB获取数据以插入MySql数据库。我使用PHP提供的SNMP连接,所以我希望我的php脚本始终运行,后台没有用于更新数据库的界面。我可以这样做,还是有更好的方法。求你帮帮我。
答案 0 :(得分:1)
你需要像php中的守护进程,虽然这不是最好的方法,但这是可能的。只需从命令行(php CLI环境)启动php脚本,然后将其作为新进程从控制台中分离出来。起点取决于您的操作系统,但在任何一种情况下,一个简单的控制台脚本都可以完成这项任然后你只需要确保你的PHP脚本永远不会完成。使用此永不结束脚本轮询SNMP代理并将值写入MySQL。设计另一堆PHP脚本,以便从数据库中读取并在网页中显示值。
注意:PHP不是为此目的而设计的,即实现一个行为类似于某种应用程序的驻留守护程序,因此您可能很容易遇到有关内存消耗和处理的困难(没有多线程!)。
我建议为守护程序服务使用另一种语言,即Java。有一个免费的开源库SNMP4j,它易于使用,让你在几分钟内实现你的轮询(我甚至会说它比PHP中的SNMP扩展要成熟得多)。