现在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()
………………
………………
}
}