• 產品與解決方案
  • 行業解決方案
  • 服務
  • 支持
  • 合作夥伴
  • 關於我們

19-可編程網絡管理配置指導

目錄

03-Tcl配置

本章節下載 03-Tcl配置  (185.61 KB)

03-Tcl配置


1 Tcl

1.1  Tcl在Comware V9中的使用

ComwareV9係統內嵌了Tcl(Tool Command Language,工具命令語言)解析器,支持直接在設備上執行Tcl腳本命令,以實現通過Tcl腳本配置設備。

在用戶視圖下執行tclsh命令,會進入Tcl配置視圖。為兼容Comware配置方式,在Tcl配置視圖下,用戶可以直接輸入Tcl腳本命令,也可以輸入Comware係統的命令。命令輸入完成後,直接回車即可執行。

Tcl配置視圖下,支持Tcl8.5版本的所有命令。

對於Comware係統的命令,Tcl配置視圖相當於用戶視圖,配置方式同用戶視圖下的配置。

1.2  Tcl配置限製和指導

通過Tcl腳本配置設備或在Tcl配置視圖下執行Comware命令的過程中,如需退回上一級視圖,隻能使用quit命令。如需退回Tcl配置視圖,不能使用return命令,可以使用組合鍵<Ctrl+Z>。

1.3  通過Tcl腳本配置設備

1.3.1  配置限製和指導

在Tcl配置視圖下編輯命令時,遵循以下約定:

·     用戶需保證輸入的Tcl腳本命令可以正確執行。

·     由於執行Tcl腳本命令過程無法使用快捷鍵或命令行方式中斷,如果用戶通過Telnet/SSH方式登錄設備並執行腳本命令時出現問題,需要關閉當前連接來終止執行過程;如果用戶通過Console口方式登錄設備並執行腳本命令時出現問題,則可以通過重啟設備或者通過其他方式登錄設備執行free line命令斷開該Console/AUX用戶線的連接。有關free line命令的詳細介紹,請參見“基礎配置命令”中的“登錄設備”。

建議用戶通過Telnet/SSH方式登錄設備並進入Tcl視圖執行腳本命令。

·     在Tcl中定義的環境變量可以應用到Comware係統的命令。

·     Tcl腳本命令不支持輸入“?”鍵獲得在線幫助和Tab鍵補全功能。

·     已經成功執行的Tcl腳本命令不會記錄在曆史命令緩衝區中。

·     通過Tcl腳本命令read stdin進行讀取操作時,可以通過<Ctrl+D>結束讀取。

1.3.2  配置步驟

(1)     從用戶視圖進入Tcl配置視圖。

tclsh

(2)     根據需求執行Tcl腳本。

Tcl command

(3)     從Tcl配置視圖退回到用戶視圖。

¡     tclquit

¡     quit

1.4  在Tcl配置視圖下執行Comware命令

1.4.1  功能簡介

在Tcl配置視圖下執行Comware命令有兩種方式:一種是在Tcl配置視圖下直接輸入Comware命令,如果Tcl命令與Comware命令的命令字衝突,則執行Tcl命令;另一種是在Comware命令前添加cli命令關鍵字,該方式在Tcl命令與Comware命令的命令字衝突時能夠優先執行Comware命令。

1.4.2  配置限製和指導

在Tcl配置視圖下執行Comware命令時,遵循以下約定:

·     當Comware命令配置的字符串被特殊字符""或{}包圍時,隻有在特殊字符前加上\,該特殊字符才有效。例如,在接口視圖下設置描述信息為"a"時,需要執行description \"a\";如果執行description "a",配置結果為description a。

·     Comware係統的命令支持輸入“?”鍵獲得在線幫助和Tab鍵補全功能。關於輸入“?”鍵獲得在線幫助和Tab鍵補全功能的詳細描述,請參見“基礎配置指導”中的“CLI”。

·     cli命令是Tcl腳本命令,不支持輸入“?”鍵獲得在線幫助和Tab鍵補全功能。

·     已經成功執行的Comware係統的命令會記錄在曆史命令緩衝區中,使用上下光標鍵可以調用執行過的命令。

·     通過以下三種方式,可以一次執行多條Comware命令:

¡     在同一行連續鍵入多條Comware係統的命令,命令間用分號隔開。多條命令會按順序下發並執行。例如vlan 2;description Tech

¡     在cli命令後連續鍵入需要執行的多條Comware命令,每條Comware命令之間使用空格加分號進行分隔,在第一條Comware命令的前方和最後一條Comware命令的後方添加英文格式的雙引號。例如cli "vlan 2 ;description Tech"

¡     多次輸入cli命令和Comware命令的組合,每組之間使用空格加分號分隔。例如cli vlan 2 ;cli description Tech

1.4.3  配置步驟

(1)     從用戶視圖進入Tcl配置視圖。

tclsh

(2)     執行Comware命令。

¡     直接執行Comware命令。

Command

¡     通過增加cli命令關鍵字執行Comware命令。

cli command

(3)     從Tcl配置視圖退回到用戶視圖。

¡     tclquit

¡     quit


2 Comware擴展Tcl API

本文描述在Comware V9中提供的擴展Tcl API。

2.1  create-cli

用來創建CLI通道。

【命令】

::comware::create-cli

【使用指導】

CLI通道用於下發命令行配置(相關API為write-cli)。

多次執行本命令可以創建多個CLI通道。創建的CLI通道名稱依次為cli0、cli1、……,以此類推。

不同的CLI通道之間互相獨立,可看作不同的命令行終端。

【舉例】

# 創建一個CLI通道。

<Sysname> tclsh

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

【結果】

cli0

2.2  destroy-cli

用來刪除CLI通道。

【命令】

::comware::destroy-cli cli-channel-name

【參數】

cli-channel-name:已創建的CLI通道名稱。

【舉例】

# 刪除已創建的CLI通道cli0。

<Sysname> tclsh

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

2.3  write-cli

用來在CLI通道中執行Comware命令。

【命令】

::comware::write-cli cli-channel-name command

【參數】

cli-channel-name:已創建的CLI通道名稱。

command:表示要下發的Comware命令。命令前後需要添加英文格式的雙引號。僅支持下發一條命令。

【使用指導】

CLI通道在後台下發命令,不顯示任何輸出信息,不支持下發需要和用戶交互確認的命令。

CLI通道缺省從用戶視圖開始下發命令;當需要下發其他視圖的命令時,需要先下發進入視圖的命令,再下發具體的配置命令。

【舉例】

# 在已創建的CLI通道cli0中下發命令進入係統視圖,並修改設備名稱為abc。

<Sysname> tclsh

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

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

<Sysname-tcl>

【結果】

<abc-tcl>

2.4  execute-shell-cmd

用來執行Comware命令。

【命令】

::comware::execute-shell-cmd command

【參數】

command:表示要下發的Comware命令。命令前後需要添加英文格式的雙引號。多條命令之間以空格加分號分隔,例如"system-view ;sysname test"。

【使用指導】

下發命令從用戶視圖開始,如果command中不指定視圖,直接輸入命令,表示該命令在用戶視圖下執行;當需要執行其他視圖的命令時,需要先輸入進視圖的命令,再輸入具體的配置命令。

【舉例】

# 使用Tcl API進入係統視圖,修改設備名稱為test,並執行ping命令。

<Sysname> tclsh

<Sysname-tcl> ::comware::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編號。

【命令】

::comware::getmaxslotnumber

【使用指導】

該命令獲取的是全局slot編號。

【舉例】

# 使用Tcl API獲取係統支持的最大slot編號。

<Sysname> tclsh

<Sysname-tcl> ::comware::getmaxslotnumber

【結果】

839

2.6  getminslotnumber

用來獲取當前係統支持的最小slot編號。

【命令】

::comware::getminslotnumber

【舉例】

# 使用Tcl API獲取係統支持的最小slot編號。

<Sysname> tclsh

<Sysname-tcl> ::comware::getminslotnumber

【結果】

0

2.7  get_self_slot

用來獲取主用主控板所在的槽位號。

【命令】

::comware::get_self_slot

【返回值】

返回一個列表對象,格式為:(-1,slot-number),其中slot-number表示主用主控板所在的槽位號。

【舉例】

# 使用Tcl API獲取主用主控板所在的槽位號。

<Sysname> tclsh

<Sysname-tcl> ::comware::get_self_slot

【結果】

(-1,1)

2.8  get_slot_info

用來獲取slot信息。

【命令】

::comware::get_slot_info global-slot-number

【參數】

global-slot-number:全局slot編號。

【返回值】

返回一個字典對象,返回值始終為Chassis chassis-number Slot slot-number Cpu CPU-number Role role Status statuschassis-number表示設備在IRF中的成員編號,slot-number表示單板所在的槽位號,CPU-number表示單板上主CPU的編號,role表示單板的角色,status表示單板的狀態。

【舉例】

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

<Sysname> tclsh

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

【結果】

Chassis  Slot 1 Cpu 0 Role Master Status Normal

2.9  get_standby_slot

用來獲取所有備用主控板所在的槽位號。

【命令】

::comware::get_standby_slot

【返回值】

返回一個列表對象,格式為:(-1,slot-number),其中slot-number表示備用主控板所在的槽位號。如果設備上沒有備用主控板,則返回空值。

【舉例】

# 使用Tcl API獲取備用主控板所在的槽位號。

<Sysname> tclsh

<Sysname-tcl> ::comware::get_standby_slot

【結果】

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

2.10  transfer

用來將指定文件通過指定協議下載到本地。

【命令】

::comware::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> ::comware::transfer ftp 192.168.3.76 testfile flash:/localfile.cfg vpn1 0 admin admin

 

不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!

BOB登陆
官網
聯係我們