网络设备自动巡检工具(四)——Timer控件的灵活使用【2020-10-29】

   日期:2020-10-31     浏览:131    评论:0    
核心提示:网络设备自动巡检工具(四)——Timer控件的灵活使用按照昨天的想法,今天将登录设备和自动巡检都完成了,我们先来看看成果;如下图,在左边树状列表中选择要登录的设备,然后点击工具栏上登录设备图标,会弹出一个确认窗口,点击确定后,Visual FoxPro会自动打开SecureCRT并自动登录。自动巡检功能再如下图,当点击工具栏的自动巡检按钮时,程序会弹出进度条,将巡检设备数据库中巡检状态是Ture的设备逐台按照各自的巡检命令,以静默的方式打开SecureCRT自动登录执行巡检命令,执行完毕后自

网络设备自动巡检工具(四)——Timer控件的灵活使用

按照昨天的想法,今天将登录设备和自动巡检都完成了,我们先来看看成果;如下图,在左边树状列表中选择要登录的设备,然后点击工具栏上登录设备图标,会弹出一个确认窗口,点击确定后,Visual FoxPro会自动打开SecureCRT并自动登录。

自动巡检功能再如下图,当点击工具栏的自动巡检按钮时,程序会弹出进度条,将巡检设备数据库中巡检状态是Ture的设备逐台按照各自的巡检命令,以静默的方式打开SecureCRT自动登录执行巡检命令,执行完毕后自动关闭SecureCRT,而且是多实例同时登录采集,最后将设备的巡检log文件存放在“配置”文件夹里。功能测试超出了我的期望,以63台设备测试巡检大约2分多钟后完毕,速度杠杠的,我非常满意。

其次,分享一下今天的开发,首先登录设备采用上期说的先自动生成CRT脚本,然后调用CRT运行脚本就可以了,很顺利一试成功;自动巡检时我如法炮制,把它放进循环语句中运行,同时巡检采集多台设备,但是由于每台设备的巡检命令多少不一致,设备响应时间不同等原因,我的程序无法知道CRT什么时候执行完毕,造成程序不知何时读取log信息、删除临时脚本等,经过反复思考和实验后,我采用了VFP的Timer计时器控件(这里介绍下Timer控件,它的功能是每经过可设定的时间间隔,就去自动执行一段代码的控件,只要enable属性是Ture,他就一直运行),使用Timer控件轻松解决问题了。下面就详细分享一下实现方法:

首先在循环调用CRT时,给每一个调用创建一个Timer控件,用各自的脚本文件名区分开,创建时Timer的enable属性为False,当CRT开始运行脚本时,就将enable属性为Ture,这时Timer开始计时,并每隔1秒(1秒是我设定的)执行一次我设定好的程序。

其次设定好的程序编写如下功能:1、检测“配置”文件夹下是否生成同脚本文件名一致的log文件,2、如果生成对应的log文件,使用Fopen()函数尝试锁定打开log文件写模式,如果CRT没有运行完毕,那么Fopen()函数就锁定不成功,就这样每隔1秒尝试一次锁定,当CRT执行完毕后,log文件被CRT释放,这样Fopen()函数就能锁定成功。

最后当Fopen()函数锁定成功后,将Timer控件的enable属性设为False,将CRT关闭,将临时脚本文件删除,将log文件信息及路径记录到数据库,准备下一步的数据解析。

今天太晚了,截止现在,网络设备自动巡检工具的第一阶段完成了,就是建立设备列表和自动登录自动巡检的功能都完成了,从明天开始进入第二阶段数据解析的阶段。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服