之前试过用expect结合bash脚本备份交换机LOG,但由于是串行执行,设备很多的情况下耗时太长,而且经常出错导致备份不完整。于是在网上找python多线程处理的相关文章,但基本都是基于tftp备份当时运行的配置文件,不能根据自定义巡检命令取得返回结果,我想要的是类似SECURECRT下用.vbs脚本备份的效果,所以根据网上一些例子做了这个备份脚本。由于是多线程执行,所以执行时长决定于最多配置的那台设备的命令运行时长。


[root@localhost shell]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root@localhost shell]# python --version
Python 2.7.5
[root@localhost shell]#  tree /networkbackup/
/networkbackup/
|-- log
|   `-- 10.06.99.01_2016-12-01_00:00:01.log
`-- shell
    |-- command.txt
    |-- main.py
    `-- sw.txt   
[root@localhost shell]# pwd
/networkbackup/shell
[root@localhost shell]# ll
总用量 12
-rw------- 1 root root  380 11月 28 13:01 command.txt
-rw------- 1 root root 1975 11月 28 13:26 main.py
-rw------- 1 root root  337 11月 28 14:08 sw.txt



#python脚本

[root@localhost shell]#  cat main.py
#!/usr/bin/env python
#coding:utf-8
import sys
import os
import telnetlib
import timec
import threading
import datetime
now = datetime.datetime.now()
#Use for loop to telnet into each routers and execu