python批量调试脚本

这个脚本最初也是来自网络,我给他改了一下,适合平常自己用,大家有需要可以参考一下,不懂的可以交流。

安装python是前提,这里还需要新建一个名称为list.xlsx的excel文件,并新建如下格式的表单:

python代码如下:


#!/usr/bin/env python3
import paramiko
import time
import xlrd
import telnetlib,sys

def get_list():
    f = xlrd.open_workbook('list.xlsx')
    tables = f.sheet_by_index(0)
    ip_list = []
    x = 1
    while True:
        try:
            data = tables.cell(x,1)
            x += 1
            data = str(data)
            ip_list.append(data[6:][:-1])
        except IndexError:
            print('Excel信息加载完成!!!')
            break
    print('添加列表如下:')
    for i in ip_list:
        print(i)
    print('合计',len(ip_list),'台主机')
    return ip_list

def get_cmd():
    cmd = ''
    c = ''
    while True:
        cmd_line = input('输入命令,qq回车结束:')
        if cmd_line == 'qq':
            break
        cmd = cmd + cmd_line + '\n'
    if cmd != '':
        print('已输入命令如下:')
        print(cmd)

        cc = input('键入y继续,将自动刷入命令,其它输入退出:')
        if cc != 'y':
            exit()
    else:
        print('未输入任何命令,程序退出!')
        exit()
    return cmd
def get_cmd_txt():
    cmd = ''
    with open('./config.txt') as lines:
        array=lines.readlines()  
        #print(array)  
    for i in array:
        cmd = cmd + i
    #print(cmd)
    return   cmd  
def put_cmd(iplist,pcmd):
    #un = input('输入用户名:')
    #pd = input('密码:')
    for ip in iplist:
        tn=telnetlib.Telnet(ip)
        #print(tn.read_until(b'Login:').decode('ascii'))
        tn.write(b'admin\n')
        print(tn.read_until(b'Password:').decode('ascii'))
        tn.write(b'admin@huawei.com\n')
        print(tn.read_until(b'>').decode('ascii'))
        #tn.write(pcmd.encode("utf-8"))             #在此处调整代码
        #tn.write("sys\n".encode("utf-8"))
        #cmd = "tftp 192.168.56.1 put vrpcfg.zip vrpcfg" + ip + ".zip\n"
        cmd = "screen-length disable\n"
        tn.write(cmd.encode("utf-8"))
        time.sleep(1)
        cmd = "dis lldp nei list\n"
        tn.write(cmd.encode("utf-8"))
        time.sleep(1)      
        cmd = "dis cur\n"
        tn.write(cmd.encode("utf-8"))
        time.sleep(5)
        result = tn.read_very_eager().decode('utf-8')
        print(result)
        tn.close()
        print(ip,'完成!')

put_cmd(get_list(),get_cmd_txt())