这个脚本最初也是来自网络,我给他改了一下,适合平常自己用,大家有需要可以参考一下,不懂的可以交流。
安装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())