|

楼主 |
发表于 2022-1-27 15:27:06
|
显示全部楼层
本帖最后由 甜蜜难在 于 2022-1-27 15:28 编辑
如果我在输入密码后面再手动加入一句输入密码,代码如下:
- import shutil
- import pexpect
- import sys
- import datetime
- import os
- import pymssql
- # 今天的日期
- today = datetime.date.today().strftime('%Y-%m-%d')
- path = "/root/xunjian/" + today
- if os.path.exists(path):
- shutil.rmtree(path) # 递归删除文件夹下的所有子文件夹和子文件
- os.mkdir(path, 777)
- def switch(name, ip, passwd):
- try:
- name1 = "----More----" # 模拟交换机出现的翻页提示
- child = pexpect.spawn('telnet %s' % ip)
- fout = open(
- '/root/xunjian/' + today + '/' + '%s-%s.txt' %
- (name, ip), 'wb+')
- child.logfile = fout
- child.expect('Username:', timeout=5) # 提示用户登录,输入账号
- child.sendline("admin")
- child.expect('(?i)ssword:', timeout=5) # 提示输入密码
- [color=Red]child.sendline("123@123@123")[/color]
- child.sendline("%s" % passwd)
- child.expect('<%s>' % name)
- child.sendline("display cpu-usage") # 查看cpu状态
- child.expect('<%s>' % name)
- child.sendline("display memory") # 查看内存状态
- child.expect('<%s>' % name)
- child.sendline("display environment") # 查看运行温度
- child.expect('<%s>' % name)
- child.sendline("display fan") # 查看风扇状态
- child.expect('<%s>' % name)
- child.sendline("display power") # 查看电源状态
- child.expect('<%s>' % name)
- child.sendline("display ip routing-table") # 路由表
- for i in range(10):
- index = child.expect([name1, '<%s>' % name])
- if index == 0:
- child.send(" ")
- else:
- child.sendline("display interface brief") # 端口状态
- break
- for i in range(10):
- index = child.expect([name1, '<%s>' % name])
- if index == 0:
- child.send(" ")
- else:
- child.sendline("dis version") # 版本,为了看运行时间
- break
- for i in range(10):
- index = child.expect([name1, '<%s>' % name])
- if index == 0:
- child.send(" ")
- else:
- child.sendline("display log") # 日志,日志较多,循环100个空格,怕输出不全。
- break
- for i in range(100):
- index = child.expect([name1, '<%s>' % name])
- if index == 0:
- child.send(" ")
- else:
- child.sendline("quit")
- break
- except BaseException:
- pass
- host = 'localhost' # 连接数据库,抓取数据库内的信息,交换机的名字、IP、密码
- port = 1433
- user = 'sa'
- pwd = 'Zhonglang@159'
- db = 'test'
- connect = pymssql.connect(
- host=host,
- port=port,
- user=user,
- password=pwd,
- database=db,
- charset="utf8")
- cur = connect.cursor()
- sqls = "select * from [dbo].[test]"
- cur.execute(sqls)
- listall = cur.fetchall() # SQL输出内容导成列表
- for line in listall:
- switch(line[0], line[1], line[2])
- connect.commit()
- connect.close()
复制代码
那么执行结果就会很多,但是命令执行那里还是存在问题。。
[root@localhost 2022-01-27]# cat stackB-10.1.1.3.txt
Trying 10.1.1.3...
Connected to 10.1.1.3.
Escape character is '^]'.
Warning: Telnet is not a secure protocol, and it is recommended to use Stelnet.
Login authentication
Username:admin
admin
Password:123@123@123
Info: The max number of VTY users is 20, and the number
of current VTY users on line is 1.
The current login time is 2022-01-27 14:19:04+00:00.
<stackB>display cpu-usage
display cpu-usage
CPU Usage Stat. Cycle: 60 (Second)
CPU Usage : 76% Max: 96%
CPU Usage Stat. Time : 2022-01-27 14:19:04
CPU utilization for five seconds: 76%: one minute: 76%: five minutes: 76%
Max CPU Usage Stat. Time : 2021-12-12 09:26:13.
TaskName CPU Runtime(CPU Tick High/Tick Low) Task Explanation
AGNT 45% 1/97d843a0 AGNTSNMP agent task
VIDL 24% 0/d693a3fe DOPRA IDLE
OS 19% 0/a9df8c7f Operation System
l2sy 5% 0/3152a5e0 l2sync
SFPT 3% 0/22921900 SFPT Timer
FTS 2% 0/1502b920 FTS
IFPD 1% 0/ aba9500 IFPD Ifnet Product Adapter
TICK 1% 0/ b06e040
AAA 0% 0/ 0 AAA Authen Account Authorize
ACL 0% 0/ 2625a0 ACL Access Control List
ADPT 0% 0/ 0 ADPT Adapter
AGENT_CAPWAP 0% 0/ 0 AGENT_CAPWAP
AGENT_WLAN 0% 0/ 0 AGENT_WLAN
AGT6 0% 0/ 0 AGT6SNMP AGT6 task
ALM 0% 0/ 0 ALM Alarm Management
ALS 0% 0/ 2625a0 ALS Loss of Signal
AM 0% 0/ 23c3460 AM Address Management
---- More ----[root@localhost 2022-01-27]# ^C
[root@localhost 2022-01-27]# cat stackB-10.1.1.3.txt
Trying 10.1.1.3...
Connected to 10.1.1.3.
Escape character is '^]'.
Warning: Telnet is not a secure protocol, and it is recommended to use Stelnet.
Login authentication
Username:admin
admin
Password:123@123@123
Info: The max number of VTY users is 20, and the number
of current VTY users on line is 1.
The current login time is 2022-01-27 14:19:04+00:00.
<stackB>display cpu-usage
display cpu-usage
CPU Usage Stat. Cycle: 60 (Second)
CPU Usage : 76% Max: 96%
CPU Usage Stat. Time : 2022-01-27 14:19:04
CPU utilization for five seconds: 76%: one minute: 76%: five minutes: 76%
Max CPU Usage Stat. Time : 2021-12-12 09:26:13.
TaskName CPU Runtime(CPU Tick High/Tick Low) Task Explanation
AGNT 45% 1/97d843a0 AGNTSNMP agent task
VIDL 24% 0/d693a3fe DOPRA IDLE
OS 19% 0/a9df8c7f Operation System
l2sy 5% 0/3152a5e0 l2sync
SFPT 3% 0/22921900 SFPT Timer
FTS 2% 0/1502b920 FTS
IFPD 1% 0/ aba9500 IFPD Ifnet Product Adapter
TICK 1% 0/ b06e040
AAA 0% 0/ 0 AAA Authen Account Authorize
ACL 0% 0/ 2625a0 ACL Access Control List
ADPT 0% 0/ 0 ADPT Adapter
AGENT_CAPWAP 0% 0/ 0 AGENT_CAPWAP
AGENT_WLAN 0% 0/ 0 AGENT_WLAN
AGT6 0% 0/ 0 AGT6SNMP AGT6 task
ALM 0% 0/ 0 ALM Alarm Management
ALS 0% 0/ 2625a0 ALS Loss of Signal
AM 0% 0/ 23c3460 AM Address Management
---- More ----[root@localhost 2022-01-27]#
[root@localhost 2022-01-27]# rm -rf stackB-10.1.1.3.txt
[root@localhost 2022-01-27]# cd ..
[root@localhost xunjian]# cd ..
[root@localhost ~]# rm -rf test.py
[root@localhost ~]# rz
rz waiting to receive.
?a? zmodem ′???£ °′ Ctrl+C ???£
Transferring test.py...
100% 3 KB 3 KB/s 00:00:01 0 Errors
?[root@localhost ~]# python test.py
[root@localhost ~]# cd xunjian
[root@localhost xunjian]# cd 2022-01-27/
[root@localhost 2022-01-27]# ls
stackB-10.1.1.3.txt
[root@localhost 2022-01-27]# cat stackB-10.1.1.3.txt
Trying 10.1.1.3...
Connected to 10.1.1.3.
Escape character is '^]'.
Warning: Telnet is not a secure protocol, and it is recommended to use Stelnet.
Login authentication
Username:admin
admin
Password:123@123@123
123@123@123
Info: The max number of VTY users is 20, and the number
of current VTY users on line is 1.
The current login time is 2022-01-27 14:30:15+00:00.
<stackB>display cpu-usage
123@123@123
^
Error: Unrecognized command found at '^' position.
<stackB>display memory
display cpu-usage
CPU Usage Stat. Cycle: 60 (Second)
CPU Usage : 79% Max: 96%
CPU Usage Stat. Time : 2022-01-27 14:30:15
CPU utilization for five seconds: 79%: one minute: 79%: five minutes: 79%
Max CPU Usage Stat. Time : 2021-12-12 09:26:13.
TaskName CPU Runtime(CPU Tick High/Tick Low) Task Explanation
OS 21% 0/bbc12f7e Operation System
VIDL 21% 0/bbc12f7e DOPRA IDLE
FTS 15% 0/8a6e89a0 FTS
SOCK 12% 0/718bfe40 SOCKPacket schedule and
process
AGNT 6% 0/3c0d3ae0 AGNTSNMP agent task
VPR 6% 0/3c336080 VPR VP Receive
L3I4 4% 0/245bdc80 L3I4 LPU Manage IPv4 unicast
FDB
SFPT 3% 0/1b9130a0 SFPT Timer
rx_2 3% 0/21f98280 rx_2
IT59 2% 0/178b38c0 IT59
rx_7 2% 0/125413e0 rx_7
ARP 1% 0/ e7441a0 ARP
IFPD 1% 0/ b06e040 IFPD Ifnet Product Adapter
IPCR 1% 0/ aba9500 IPCR InterPro Communicate
Receive
<stackB>display environment
isplay memory
^
Error: Unrecognized command found at '^' position.
<stackB>display fan
display environment
^
Error: Unrecognized command found at '^' position.
<stackB>display power
display fan
-------------------------------------------------------------------------
Slot FanID Online Status Speed Mode Airflow
-------------------------------------------------------------------------
0 1 Present Normal 35% Auto Side-to-Side
0 2 Present Normal 35% Auto Side-to-Side
0 3 Present Normal 35% Auto Side-to-Side
1 1 Present Normal 35% Auto Side-to-Side
1 2 Present Normal 35% Auto Side-to-Side
1 3 Present Normal 35% Auto Side-to-Side
<stackB>display ip routing-table
display power
Info: There is no power information.
<stackB>display interface brief
display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 103 Routes : 103
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 60 0 RD 10.1.1.1 Vlanif100
10.1.1.0/24 Direct 0 0 D 10.1.1.3 Vlanif100
10.1.1.3/32 Direct 0 0 D 127.0.0.1 Vlanif100
10.237.248.0/24 Direct 0 0 D 10.237.248.1 Vlanif300
10.237.248.1/32 Direct 0 0 D 127.0.0.1 Vlanif300
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
172.16.1.0/24 Direct 0 0 D 172.16.1.254 Vlanif300
172.16.1.254/32 Direct 0 0 D 127.0.0.1 Vlanif300
172.16.2.0/24 Direct 0 0 D 172.16.2.1 Vlanif300
172.16.2.1/32 Direct 0 0 D 127.0.0.1 Vlanif300
172.16.3.0/24 Direct 0 0 D 172.16.3.1 Vlanif300
172.16.3.1/32 Direct 0 0 D 127.0.0.1 Vlanif300
172.17.1.0/24 Direct 0 0 D 172.17.1.1 Vlanif300
172.17.1.1/32 Direct 0 0 D 127.0.0.1 Vlanif300
172.17.2.0/24 Direct 0 0 D 172.17.2.1 Vlanif300
172.17.2.1/32 Direct 0 0 D 127.0.0.1 Vlanif300
172.17.3.0/24 Direct 0 0 D 172.17.3.1 Vlanif300
172.17.3.1/32 Direct 0 0 D 127.0.0.1 Vlanif300
192.168.0.0/24 Direct 0 0 D 192.168.0.1 Vlanif21
192.168.0.1/32 Direct 0 0 D 127.0.0.1 Vlanif21
192.168.1.0/24 Direct 0 0 D 192.168.1.1 Vlanif300
192.168.1.1/32 Direct 0 0 D 127.0.0.1 Vlanif300
192.168.2.0/24 Direct 0 0 D 192.168.2.1 Vlanif300
<stackB>dis version
isplay interface brief
^
Error: Unrecognized command found at '^' position.
<stackB>ddisplay log
is version
Huawei Versatile Routing Platform Software
VRP (R) software, Version 5.170 (S6720 V200R011C10SPC600)
Copyright (C) 2000-2018 HUAWEI TECH Co., Ltd.
HUAWEI S6720S-26Q-LI-24S-AC Routing Switch uptime is 6 weeks, 4 days, 8 hours, 13 minutes
ES5D2S26Q005 0(Master) : uptime is 6 weeks, 4 days, 8 hours, 11 minutes
DDR Memory Size : 1024 M bytes
FLASH Total Memory Size : 512 M bytes
FLASH Available Memory Size : 360 M bytes
Pcb Version : VER.A
BootROM Version : 020b.0001
BootLoad Version : 020b.0a05
CPLD Version : 0105
Software Version : VRP (R) Software, Version 5.170 (V200R011C10SPC600)
FLASH Version : 0x0
ES5D2S26Q005 1(Standby) : uptime is 6 weeks, 4 days, 7 hours, 56 minutes
DDR Memory Size : 1024 M bytes
FLASH Total Memory Size : 512 M bytes
FLASH Available Memory Size : 360 M bytes
Pcb Version : VER.A
BootROM Version : 020b.0001
BootLoad Version : 020b.0a05
CPLD Version : 0105
<stackB>quit
就是在一条命令下面紧接着又是一条命令,或者就是命令直接变成了两截。。很奇怪。 |
|