python实验9 多线程
Posted 睡着的冰淇淋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python实验9 多线程相关的知识,希望对你有一定的参考价值。
实验运行环境
LSW1是透明的,不需要配置
LSW2~6,在vlanif1中配置IP地址:192.168.11.11~15/24,LSW2~6使⽤S5700。登陆⽅式为SSH,账号python,密码123,⽤户等级3
华为远程登陆的用户等级有:
0:参观
可执⾏:ping、tracert、telnet、rsh、super、language-mode、display、quit
1:监控
可执⾏:0级命令、msdp-tracert、mtracert、reboot、reset、send、terminal、undo、upgrade、debugging
2:系统
可执⾏:所有配置命令(管理级的命令除外)和0、1级命令
3:管理
可执⾏所有命令
实验目的
使⽤多线程的⽅法,对LSW2~6进⾏配置,把线程0~4接⼊的⽅式从SSH修改为All。注意修改的是线程的接⼊⽅式⽽不是user的⼯作模式。
再通过普通的单线程的⽅法进⾏同样的配置,⽐较两种⽅式的运⾏时间。
实验准备
LSW2开启ssh登录,并创建线程0~4:
aaa
local-user python password cipher 123
local-user python privilege level 3
local-user python service-type ssh #user的⼯作模式
quit
stelnet server enable # 开启ssh服务
ssh authentication-type default password
user-interface vty 0 4 # 创建线程0~4
authentication-mode aaa
protocol inbound ssh # 线程0~4的接⼊⽅式(也是实验的目的)
interface Vlanif1
ip address 192.168.11.11 255.255.255.0
LSW3开启ssh登录,并创建线程0~4:
aaa
local-user python password cipher 123
local-user python privilege level 3
local-user python service-type ssh #user的⼯作模式
quit
stelnet server enable # 开启ssh服务
ssh authentication-type default password
user-interface vty 0 4 # 创建线程0~4
authentication-mode aaa
protocol inbound ssh # 线程0~4的接⼊⽅式(也是实验的目的)
interface Vlanif1
ip address 192.168.11.12 255.255.255.0
LSW4开启ssh登录,并创建线程0~4:
aaa
local-user python password cipher 123
local-user python privilege level 3
local-user python service-type ssh #user的⼯作模式
quit
stelnet server enable # 开启ssh服务
ssh authentication-type default password
user-interface vty 0 4 # 创建线程0~4
authentication-mode aaa
protocol inbound ssh # 线程0~4的接⼊⽅式(也是实验的目的)
interface Vlanif1
ip address 192.168.11.13 255.255.255.0
LSW5开启ssh登录,并创建线程0~4:
aaa
local-user python password cipher 123
local-user python privilege level 3
local-user python service-type ssh #user的⼯作模式
quit
stelnet server enable # 开启ssh服务
ssh authentication-type default password
user-interface vty 0 4 # 创建线程0~4
authentication-mode aaa
protocol inbound ssh # 线程0~4的接⼊⽅式(也是实验的目的)
interface Vlanif1
ip address 192.168.11.14 255.255.255.0
LSW5开启ssh登录,并创建线程0~4:
aaa
local-user python password cipher 123
local-user python privilege level 3
local-user python service-type ssh #user的⼯作模式
quit
stelnet server enable # 开启ssh服务
ssh authentication-type default password
user-interface vty 0 4 # 创建线程0~4
authentication-mode aaa
protocol inbound ssh # 线程0~4的接⼊⽅式(也是实验的目的)
interface Vlanif1
ip address 192.168.11.15 255.255.255.0
补充
关于ssh authentication-type default password:
在介绍这个命令的功能之前需要先解答⼀个疑问,我们在AAA视图下已经配置了⽤户并且配置和service-type为ssh,为什么还要配置ssh user呢?这⾥就需要对ssh和aaa之间的关系做⼀下解释。
SSH是⼀种⽹络协议,⽤于计算机之间的加密登录。SSH可以加密telnet成为stelnet,也可以加密ftp成为sftp。telnet和ftp都是⽹络服务,所以我们所指的SSH实际上包含stelnet和sftp两种服务,需要SSH登录设备执⾏命令时则是⽤stelnet服务,需要SSH登录设备传⽂件时则是⽤sftp服务,⽽以上的服务对应的配置是 ssh user username service-type sftp | stelnet | all 。
SSH登录设备还可以选择不同的登录⽅式,可以使⽤密码登录,也可以使⽤公钥登录,⽽我们所说的登录⽅式对应的就是SSH的认证⽅式,对应的配置是 ssh user user-name authentication-type password| rsa | password-rsa | all | dsa | password-dsa 。
AAA是⼀个认证机构,主要做⽤户名密码的验证相关⼯作,和tacacs服务器、radius服务器的作⽤类似。AAA也⽀持保存各种协议类型的账户,如:telnet、ftp、pppoe、http、terminal、ssh(此处的ssh表示stelent/sftp的统称,在aaa⾥不做细分)。所以AAA视图下配置了 local-user xxx service-type ssh 之后还不⾏,因为AAA并不区分⽤户到底是stelnet还是sftp。
所以正常开启ssh远程登陆功能的命令应该是:
aaa
local-user root password cipher Root@123
local-user root service-type ssh # 这样指定还不行,aaa无法区分用户的接入方式是 stelnet,sftp或者all
local-user root level 3
ssh user root # 针对 user ,单独配置
ssh user root authentication-type password
ssh user root service-type stelnet # ⼿⼯指定ssh⽤户root的⼯作模式是stelnet
⽽ssh authentication-type default password 等效于:
ssh user root
ssh user root authentication-type password
ssh user root service-type all
单线程——脚本
Python默认是单线程的
import time
from netmiko import ConnectHandler
ip_list=[192.168.11.11,192.168.11.12,192.168.11.13,192.168.11.14,192.168.11.15]
print(f"程序于time.strftime(%X)开始执行\\n")
for device in ip_list:
sw=
"device_type": "huawei",
"ip": device,
"username": "python",
"password": 以上是关于python实验9 多线程的主要内容,如果未能解决你的问题,请参考以下文章