网络运维工具--shell批量下发

网络运维工具–shell批量下发

在这里插入图片描述

此功能针对大批量设备下发相同命令比较实用,适配多个厂商,但多个厂商不能混用。

1、命令语法介绍:

1)采集命令一般无需处理,直接下发输入后下发即可。(实际为省略模式和回显匹配符调用默认值)

命令示例:display cur(可写多行命令实现一次登录采集完成)

2)配置命令需要增加回显完成标识符和命令模式(用来保证配置下发的安全性和完整性)。

#### 命令示例1:`0_]^interface loopback 0`
#### 命令示例2:`1_]^interface loopback 0`
#### 命令示例3:`]^interface loopback 0`

命令分解:

符号^之前为回显匹配模式和回显完成标识符, 符号^之后为实际下发的命令。

匹配模式用数字 01表示, 0代表精确匹配,回显的最后字符必须要一致;1表示模糊匹配,回显标识符只需要在回显内容中出现即可,不需要回显标识符必须在回显的最后位置。
回显标识符一般为命令执行完成最后显示的最后一个字符,各厂商一般如下:
厂商回显标识符
H3C>
HW>
ruijie#
cisco#
<H3C-TEST-01>system-view 
System View: return to User View with Ctrl+Z.
[H3C-TEST-01]

例如此命令执行完成后回显标识符为]而并非>
命令按照实际要下发的命令敲即可
命令模式和回显标识符可以省略,省略情况下默认模式为精确匹配模式、回显匹配符为程序定义的默认标识符(默认信息可在配置文件中修改,看本文档配置文件部分)

2、融错语法

用来匹配可能会出现但不一定出现的情况,如从ftp下载文件时如文件不存在的情况下正常下载是没问题的,但当本地已经存在此文件时就会提示输入[Y/N]让用户判断,在此情况下可以使用该语法。

示例
ftp> 
get G1
G1 already exists. Overwrite it? [Y/N]:Y
227 Entering Passive Mode (10,168,1,123,21,108)
150 Connection accepted.
.
226 Transfer complete.
3698 bytes received in 0.199 seconds (18.17 Kbytes/s)
ftp> 

从双减号‘–’开始为python的字典格式,对应两个键值,建固定不可修改,值可修改。

值含义举例
incloude回显可能包含的字符串如上代码所示在回显中包含[Y/N]:
input匹配到可能包含的字符串后执行下发的字符串包含[Y/N]:的情况下输入Y
示例1:配置接口ip
操作命令:
1_]^system-view
1_]^interface loopback 0
1_]^ip address 172.16.1.1 255.255.255.255
1_>^return
1_>^save fo

回显内容:
system-view
System View: return to User View with Ctrl+Z.
[H3C-TEST-01]interface loopback 0
[H3C-TEST-01-LoopBack0]ip address 172.16.1.1 255.255.255.255
[H3C-TEST-01-LoopBack0]return
<H3C-TEST-01>save fo
Validating file. Please wait...
Configuration is saved to device successfully.
<H3C-TEST-01>
示例2:从ftp下载文件到网络设备
操作命令:
0_> ^ftp 10.168.1.123--{'incloude':'(none)):;Password:','input':'admin;admin'}
0_> ^cd .
0_> ^get G1--{'incloude':'[Y/N]:','input':'Y'}

回显内容
ftp 10.168.1.123
Press CTRL+C to abort.
Connected to 10.168.1.123 (10.168.1.123).
220 Browser Ftp Server.
User (10.168.1.123:(none)): admin
331 Password required for this user.
Password: 
230 User Logged In.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd .
250 CWD command successful.
ftp> 
get G1
G1 already exists. Overwrite it? [Y/N]:Y
227 Entering Passive Mode (10,168,1,123,21,108)
150 Connection accepted.
.
226 Transfer complete.
3698 bytes received in 0.199 seconds (18.17 Kbytes/s)
ftp> 

4、默认配置信息

软件才用python开发,默认配置信息定义在软件config/config.ini文件ssh配置节点
使用字典方式表示,以厂商为节点,未在定义内的厂商可以自由添加,值解释如下

建含义举例
default_biaoshi当登录到交换机之后不输入任何命令的情况下回显的最后一个标志性字符串,部分设备可能会有存在不可见字符,如cisco在#后可能会存在一个空格,这个需要根据实际填写。>
quit退出命令quit
page交换机输出默认是做了分页显示,这个命令用来关闭分页screen-length disable
error当命令报错之后出现的标志性字符串‘^’,‘position’,‘found’

键和值的标识都应使用英文引号引用。

其他厂商内容如下所示,可修改适配自己的设备。第二个功能参数下发同样调用这部分内容,不需要重复定义。
[ssh]
public = {
	'H3C':{
	'default_biaoshi':'>',
	'quit':'quit',
	'page':'screen-length disable',
	'error':['^','position','found']
	},
	'HW':{
	'default_biaoshi':'>',
	'quit':'quit',
	'page':'screen-length 0 temporary',
	'error':['^','position','found']
	},
	'ruijie':{
	'default_biaoshi':'#',
	'quit':'exit',
	'page':'terminal length 0',
	'error':['%','Incomplete','command']
	},
	'cisco':{
	'default_biaoshi':'# ',
	'quit':'exit',
	'page':'terminal length 0',
	'error':['%','command']
	},
	'tencent':{
	'default_biaoshi':'> ',
	'quit':'quit',
	'page':'no page',
	'error':['%','Unknown','command']
	}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HuHailong12138

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值