• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

23-可编程网络管理配置指导

目录

02-Tcl配置

本章节下载 02-Tcl配置  (193.85 KB)

02-Tcl配置


1 Tcl

1.1  Tcl简介

设备系统软件内置了Tcl(Tool Command Language)解析器,支持直接运行Tcl脚本命令,以实现通过脚本自动化配置设备。

设备系统软件自带的原生命令行(以下简称Platform命令)也可在Tcl环境中执行。用户只需在用户视图下输入tclsh命令,即可进入Tcl配置视图。在此视图下:

·     可直接输入并执行Tcl脚本命令(支持Tcl 8.5全部语法)。

·     也可直接输入Platform命令,Tcl配置视图的执行权限与配置方式等同于用户视图。

两种命令输入后直接按回车即可执行。

1.2  Tcl配置限制和指导

通过Tcl脚本配置设备或在Tcl配置视图下执行Platform命令的过程中,如需退回上一级视图,只能使用quit命令。如需退回Tcl配置视图,不能使用return命令,可以使用组合键<Ctrl+Z>。

1.3  通过Tcl脚本配置设备

1. 配置限制和指导

在Tcl配置视图下编辑命令时,遵循以下约定:

·     用户需保证输入的Tcl脚本命令可以正确执行。

·     由于执行Tcl脚本命令过程无法使用快捷键或命令行方式中断,如果用户通过Telnet/SSH方式登录设备并执行脚本命令时出现问题,需要关闭当前连接来终止执行过程;如果用户通过Console口方式登录设备并执行脚本命令时出现问题,则可以通过重启设备或者通过其他方式登录设备执行free line命令断开该Console用户线的连接。有关free line命令的详细介绍,请参见“基础配置命令”中的“登录设备”。

建议用户通过Telnet/SSH方式登录设备并进入Tcl视图执行脚本命令。

·     在Tcl中定义的环境变量可以应用到Platform命令。

·     Tcl脚本命令不支持输入“?”键获得在线帮助和Tab键补全功能。

·     已经成功执行的Tcl脚本命令不会记录在历史命令缓冲区中。

·     通过Tcl脚本命令read stdin进行读取操作时,可以通过<Ctrl+D>结束读取。

2. 配置步骤

(1)     从用户视图进入Tcl配置视图。

tclsh

(2)     根据需求执行Tcl脚本。

Tcl command

(3)     从Tcl配置视图退回到用户视图。

¡     tclquit

¡     quit

1.4  在Tcl配置视图下执行Platform命令

1. 功能简介

在Tcl配置视图下,可通过以下两种方式执行Platform命令:

·     直接输入命令:直接输入Platform命令即可执行。若该命令字与Tcl命令冲突,则优先执行Tcl命令。

·     使用cli关键字:在Platform命令前添加cli关键字(例如:cli display device)。此方式可确保在命令冲突时,优先执行Platform命令。

2. 配置限制和指导

在Tcl配置视图下执行Platform命令时,遵循以下约定:

·     当Platform命令配置的字符串被特殊字符""或{}包围时,只有在特殊字符前加上\,该特殊字符才有效。例如,在接口视图下设置描述信息为"a"时,需要执行description \"a\";如果执行description "a",配置结果为description a。

·     Platform命令支持输入“?”键获得在线帮助和Tab键补全功能。关于输入“?”键获得在线帮助和Tab键补全功能的详细描述,请参见“基础配置指导”中的“CLI”。

·     cli命令是Tcl脚本命令,不支持输入“?”键获得在线帮助和Tab键补全功能。

·     已经成功执行的Platform命令会记录在历史命令缓冲区中,使用上下光标键可以调用执行过的命令。

·     通过以下三种方式,可以一次执行多条Platform命令:

¡     在同一行连续键入多条Platform命令,命令间用分号隔开。多条命令会按顺序下发并执行。例如vlan 2;description Tech

¡     在cli命令后连续键入需要执行的多条Platform命令,每条Platform命令之间使用空格加分号进行分隔,在第一条Platform命令的前方和最后一条Platform命令的后方添加英文格式的双引号。例如cli "vlan 2 ;description Tech"

¡     多次输入cli命令和Platform命令的组合,每组之间使用空格加分号分隔。例如cli vlan 2 ;cli description Tech

3. 配置步骤

(1)     从用户视图进入Tcl配置视图。

tclsh

(2)     执行Platform命令。

¡     直接执行Platform命令。

Command

¡     通过增加cli命令关键字执行Platform命令。

cli command

(3)     从Tcl配置视图退回到用户视图。

¡     tclquit

¡     quit


2 扩展Tcl API

本章节描述本设备提供的扩展Tcl API。

2.1  create-cli

用来创建CLI通道。

【命令】

::platformtools::create-cli

【使用指导】

CLI通道用于下发命令行配置(相关API为write-cli)。

多次执行本命令可以创建多个CLI通道。创建的CLI通道名称依次为cli0、cli1、……,以此类推。

不同的CLI通道之间互相独立,可看作不同的命令行终端。

【举例】

# 创建一个CLI通道。

<Sysname> tclsh

<Sysname-tcl> ::platformtools::create-cli

【结果】

cli0

2.2  destroy-cli

用来删除CLI通道。

【命令】

::platformtools::destroy-cli cli-channel-name

【参数】

cli-channel-name:已创建的CLI通道名称。

【举例】

# 删除已创建的CLI通道cli0。

<Sysname> tclsh

<Sysname-tcl> ::platformtools::destroy-cli cli0

2.3  write-cli

用来在CLI通道中执行Platform命令。

【命令】

::platformtools::write-cli cli-channel-name command

【参数】

cli-channel-name:已创建的CLI通道名称。

command:表示要下发的Platform命令。命令前后需要添加英文格式的双引号。仅支持下发一条命令。

【使用指导】

CLI通道在后台下发命令,不显示任何输出信息,不支持下发需要和用户交互确认的命令。

CLI通道缺省从用户视图开始下发命令;当需要下发其他视图的命令时,需要先下发进入视图的命令,再下发具体的配置命令。

【举例】

# 在已创建的CLI通道cli0中下发命令进入系统视图,并修改设备名称为abc。

<Sysname> tclsh

<Sysname-tcl> ::platformtools::write-cli cli0 "system-view"

<Sysname-tcl> ::platformtools::write-cli cli0 "sysname abc"

<Sysname-tcl>

【结果】

<abc-tcl>

2.4  execute-shell-cmd

用来执行Platform命令。

【命令】

::platformtools::execute-shell-cmd command

【参数】

command:表示要下发的Platform命令。命令前后需要添加英文格式的双引号。多条命令之间以空格加分号分隔,例如"system-view ;sysname test"。

【使用指导】

下发命令从用户视图开始,如果command中不指定视图,直接输入命令,表示该命令在用户视图下执行;当需要执行其他视图的命令时,需要先输入进视图的命令,再输入具体的配置命令。

【举例】

# 使用Tcl API进入系统视图,修改设备名称为test,并执行ping命令。

<Sysname> tclsh

<Sysname-tcl> ::platformtools::execute-shell-cmd "system-view ;sysname test ;ping 192.168.56.1"

【结果】

<Sysname> system-view

System View: return to User View with Ctrl+Z.

[Sysname] sysname test

[test] ping 192.168.56.1

Ping 192.168.56.1 (192.168.56.1): 56 data bytes, press the char(ASCII 0) to break

56 bytes from 192.168.56.1: icmp_seq=0 ttl=128 time=1.000 ms

...

2.5  getmaxslotnumber

用来获取当前系统支持的最大slot编号。

【命令】

::platformtools::getmaxslotnumber

【使用指导】

该命令获取的是全局slot编号。

【举例】

# 使用Tcl API获取系统支持的最大slot编号。

<Sysname> tclsh

<Sysname-tcl> ::platformtools::getmaxslotnumber

【结果】

839

2.6  getminslotnumber

用来获取当前系统支持的最小slot编号。

【命令】

::platformtools::getminslotnumber

【举例】

# 使用Tcl API获取系统支持的最小slot编号。

<Sysname> tclsh

<Sysname-tcl> ::platformtools::getminslotnumber

【结果】

0

2.7  get_self_slot

用来获取主用主控板所在的槽位号。‌

【命令】

::platformtools::get_self_slot

【返回值】

返回一个列表对象,格式为:(-1,slot-number),其中slot-number表示主用主控板所在的槽位号。‌

【举例】

# 使用Tcl API获取主用主控板所在的槽位号。

<Sysname> tclsh

<Sysname-tcl> ::platformtools::get_self_slot

【结果】

(-1,0)

2.8  get_slot_info

用来获取slot信息。

【命令】

::platformtools::get_slot_info global-slot-number

【参数】

global-slot-number:全局slot编号。

【返回值】

返回一个字典对象,返回值始终为Chassis chassis-number Slot slot-number Cpu CPU-number Role role Status statuschassis-number表示设备的成员编号,slot-number表示单板所在的槽位号,CPU-number表示单板上主CPU的编号,role表示单板的角色,status表示单板的状态。

【举例】

# 使用Tcl API获取指定slot的信息。

<Sysname> tclsh

<Sysname-tcl> ::platformtools::get_slot_info 1

【结果】

Chassis  Slot 1 Cpu 0 Role Master Status Normal

2.9  get_standby_slot

用来获取所有备用主控板所在的槽位号。‌

【命令】

::platformtools::get_standby_slot

【返回值】

返回一个列表对象,格式为:(-1,slot-number),其中slot-number表示备用主控板所在的槽位号。如果设备上没有备用主控板,则返回空值。‌

【举例】

# 使用Tcl API获取备用主控板所在的槽位号。‌‌

<Sysname> tclsh

<Sysname-tcl> ::platformtools::get_standby_slot

【结果】

(-1,1),(-1,2)

2.10  transfer

用来将指定文件通过指定协议下载到本地。

【命令】

::platformtools::transfer protocol server-ip source-file dest-file vpn-instance-name session-timeout user-name password

【参数】

protocol:表示下载文件时使用的协议。取值为:

·     ftp:表示使用FTP协议传输文件。

·     tftp:表示使用TFTP协议传输文件。

·     http:表示使用HTTP协议传输文件。

server-ip:表示远程服务器的IP地址。

source-file:表示服务器上源文件的名称。

dest-file:表示保存到本地的目的文件的名称。

vpn-instance-name:指定目的端所属的MPLS L3VPN的VPN实例名称,为1~31个字符的字符串,区分大小写。

session-timeout:表示下载文件时连接超时时间,单位为秒,取值必须大于等于0。取值为0时,将使用超时时间300秒。

user-name:表示登录时使用的用户名称。

password:表示登录时使用的用户密码。

【举例】

# 使用Tcl API将FTP服务器上的文件“testfile”下载到设备上,目的文件名为“flash:/localfile.cfg”。

<Sysname> tclsh

<Sysname-tcl> ::platformtools::transfer ftp 192.168.3.76 testfile flash:/localfile.cfg vpn1 0 admin admin

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们