網路設備自動巡檢工具(四)——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檔案資訊及路徑記錄到資料庫,準備下一步的資料決議,
今天太晚了,截止現在,網路設備自動巡檢工具的第一階段完成了,就是建立設備串列和自動登錄自動巡檢的功能都完成了,從明天開始進入第二階段資料決議的階段,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/197013.html
標籤:java
