现在,我正在开发SNMP Web服务器,我想从Windows中的MIB获取数据以插入MySql数据库中。我使用在PHP中提供的SNMP连接,所以我希望我的php脚本始终运行,并且后台没有用于更新数据库的接口。我可以这样做还是有更好的方法呢?请帮我。
最佳答案
您将需要php中的守护程序之类的东西,尽管这不是最佳方法,但有可能。只需从命令行(php CLI环境)中启动php脚本,并将其作为新进程从控制台中派生出来即可。开始取决于您的操作系统,但是无论哪种情况,都可以使用简单的控制台脚本来完成。然后,您只需确保您的php脚本永远不会完成。使用此永无休止的脚本来轮询SNMP代理并将值写入MySQL。设计另一堆PHP脚本,以从数据库读取并在网页中显示值。
注意:PHP并非为此目的而设计的,即实现行为类似于一种应用程序的驻留守护程序,因此您可能很容易在内存消耗和处理方面遇到困难(没有多线程!)。
我建议为守护程序服务使用另一种语言,即Java。有一个免费的开源库SNMP4j,它易于使用,让您在几分钟内就可以实现轮询(我什至会说它比PHP中的SNMP扩展要成熟得多)。
关于php - 我可以在后台模式下运行php脚本吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3879070/