現在CE維護只有兩個人,面對幾百個CE設備的維護,確實讓人頭疼。之前已經開發完成了自動化腳本的製作,可是對LOG的解析這項工作就悄然來臨,如果做不了LOG日誌的解析,那麼之前的所有工作全部都浪費了,行百里者半九十…
一、CE維護規律總結
1)腳本執行的順序性
每個CE執行的指令都是嚴格按照一個順序開展的,比如第一條指令是dis device,第二條指令是 dis version,第三條指令是dis CPU……,在這個順序的基礎上可以通過主題函數的順序執行性做到控制:在每一個指令函數體內部加入一個判斷語句,決定是否跳出此函數體即可。
2)每個指令執行後結果的固定性
每一個CE設備的每一條指令執行完成後,LOG的日誌信息格式都是固定的,比如dis cpu,LOG結果呈現的內容是一致的,唯一變化的就是實際的 CPU的值是多少。其他指令類似。
3)同設備類型的重複性
每一個類型的CE設備執行的內容都是相同的,因此只要做到一個CE的解析,只需要用for循環的方式進行解決。
二、整體性搭建
根據上述的特點,制定總體的函數體架構如下
//函數定義部分架構
//健康檢查
public function getHealth(){
for{
lineString = getline;
if lineString include”display trapbuffer” then exit,開始執行告警查詢
else
進行具體的條件判斷
}
}
//告警查詢
public function getAlarm() {
for{
lineString = getline;
if lineString include”display logbuffer” then exit開始執行日誌查詢部分
else
進行具體的條件判斷
}
}
//日誌查詢
public function getLog()
{
for{
lineString = getline;
if lineString include”display logbuffer” then exit開始執行日誌查詢部分
else
進行具體的條件判斷
}
}
……………
……………
main(){
for{
public function getHealth()
public function getAlarm()
public function getLog()
………………
………………
}
}