之前试过用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