网络运维工具–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']}}

网络运维工具--shell批量下发相关推荐

  1. Linux运维之网络运维

    在这里我主要介绍三个网络运维工具: iftop    ntopng    iperf 一.先来看看iftop Iftop是一个免费的网卡实时流量监控工具,类似于linux下的top命令,iftop可以 ...

  2. Python在网络运维中的应用与分析

    目前Python是新兴技术编程语言的主流之一,随着互联网技术的不断发展,计算机网络的应用范围也随之增加,网络运维自动化和智能化需求越来越高,Python编程语言逐渐盛行,该程序设计语言简单灵活,拥有庞 ...

  3. 开源,免费,跨平台的devops批量运维工具,《卡死你3000》简介

    大家好! 又到了分享的时间,今天给大家分享一款,开源,免费跨平台的devops批量运维工具.让我们先听听,作者是怎么吹的: 简介 作者道: 开源+免费+跨平台安装+100%兼容shell, 跨平台:主 ...

  4. 【网络运维】小平头PingTow网络IP导入检测工具软件开发源代码分享

    目录 一.软件功能与截图 多Excel文档批量导入IP信息 1.文件支持选择多个Excel文档 2.Excel文件的表头要求 IP信息Ping结果列表展示 二.源码分享与设计 Maven-Pom依赖 ...

  5. 大型企业中如何批量管理千万台服务器之ansible自动化运维工具详解 [⭐建议收藏⭐]

    文章目录 ansible 自动化运维工具 详解 关于作者 作者介绍 一.ansible 概述 1.1 ansible 概述 1.2 是什么要使用 ansible 1.3 ansible 功能 1.4 ...

  6. 命令行接口(CLI)将被取而代之,它不再是网络运维的主要工具

    Gartner声称:到2020年,CLI的使用将日渐式微. 多年来,网络工程师依赖命令行接口:据市场研究公司Gartner的分析师们声称,但是这种使用很普遍的工具正在迅速让位于配置和运维网络的其他方法 ...

  7. linux运维自动化脚本,linux运维自动化shell脚本小工具

    linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...

  8. 2022年网络运维必备软件和工具推荐

    网络运维是指为保障网络与业务正常.安全.有效运行而采取的生产组织管理活动,简称运维管理或OAM:负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率.为了让网络运维工作更高效快速,今天我 ...

  9. 简单介绍网络运维的基本概念和工具

    网络运维 保证网络各项功能正常运行,需要对网络进行日常维护和故障处理,日常维护是预防性的有计划的维护工作,而故障处理则是基于事件触发的维护工作. 日常运维 信息收集工具 一.日常运维 网络的生命周期大 ...

最新文章

  1. GetDlgItem的用法
  2. PKI/CA (2)核心说明
  3. 数据结构Java07【二叉排序树(添加查找删除-节点)】
  4. pdo mysql like_PHP PDO准备的语句-MySQL LIKE查询
  5. 开源开放 | 疾病科室、心血管系统疾病知识图谱发布,助力电子病历系统建设...
  6. 从核心技术到高可用实践——解密数据库深度挖掘指南
  7. java string对象放在什么区域_java中String对象的存储位置
  8. linux lsof 端口 字母,linux lsof/netstat查看进程和端口号相关命令:
  9. Git 查看帮助命令
  10. 获取系统联系人添加系统联系人
  11. 1.1 《数据库系统概论》之数据库系统概述(数据、数据库、数据库管理系统、数据库系统、数据库的产生和发展)
  12. maven parent 覆盖_Maven 最佳实践之 · 一个好的 parent 依赖基础
  13. python常用模块与MySQL数据库交互(学习笔记)
  14. 详解 Samaritan——饿了么最新开源的透明代理
  15. zblog php建站教程_开源建站程序ZBlogPHP博客安装图文教程
  16. java 和gps 建立连接_GPS 连接与定位
  17. 为什么要用规则引擎?(试读)
  18. AJAX框架眼镜穿搭夏天,20套夏天穿搭!我帮你整理出来了
  19. Python end= 什么意思?
  20. 8139网卡刷MAC

热门文章

  1. 立体像对空间前方交会(利用外方位元素交会出地面点三维坐标)
  2. 【渝粤题库】陕西师范大学201331 民事诉讼法学作业
  3. MySQL 8.0新特性之INTERSECT和EXCEPT
  4. 坚强的人:可以承受压力的品质是包容
  5. 邯郸一中高考2021成绩查询,邯郸一中2019高考成绩喜报、本一本二上线人数情况...
  6. joan jett(mv)
  7. 纯净版win10系统下载 2020-12-17
  8. 如何解决E680i经常有内存不足提示的问题
  9. String系列:Java的String类一(String)
  10. loadrunner基础分享ppt