python实现,修改cisco交换机配置

该脚本实现了自动登陆cisco交换机,可在特权模式、配置模式、子配置模式间自由切换,还实现了添加、修改缺省网关的功能。当然你可以使用返回的expect对象,执行其它交换命令。

需要安装python pexect模块,该模块不支持windows,所以此脚本也就不能运行在windows下。
Continue reading

python实现,通过ping监控主机状态

简单用python实现了一段监控主机状态的代码,有两个线程,一个线程负责执行ping,将ping的结果保存在主进程的LIST中,另一线程负责检查该结果,并在检测到主机状态变化时执行其它操作,比如发送邮件报警等。有两种情况会认为主机down了,一是当连续5个ping包都timeout时;二是在20次ping 中有10个timeout时,后者主要目的在于当主机线路出现抖动(时通时断)时也认为主机不可用了;在主机处于down状态时,连继5次ping包都正常,则将主机状态恢复为up。

目前该脚本还有些不足,threading创建多个线程后,发送给主进程的SIGINT信号都被阻塞了,所以ctrl+c不能中止程序,要直接kill掉才行,正在想法解决。
以上问题已经解决,将子线程设置为Daemon,主进程不再被子线程阻塞,可以正常接收信号。为保证主进程不退出,使用一个判断子线程是否存活的循环,子线程中增加判断全局的一个标记,如果标记为True则结束并退出,主进程收到ctrl+c的信号后,将全局的标记设置为True,子线程退出,主进程检测到线程没有存活也就退出。

在我们实际应用中,主机状态发生变化执行操作是邮件通知和修改三层交换机默认网关,两个功能也是通过python来实现的,目前代码很不整洁,待整理后放出。

Continue reading