pythontextFSM解析多行配置

2024-09-27 17:43:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我的任务是解析Cisco ACE配置。我使用的是python textFSM模块。此模板应解析配置的“服务器场”部分:

Value Required Serverfarm_name (\S+)
Value load_balance_method (\S+)
Value probe_name (\S+)
Value List rserver_name (\S*)

Start
  ^serverfarm\s+host\s+$Serverfarm_name
  ^\s+predictor\s+$load_balance_method
  ^\s+probe\s+$probe_name
  ^\s+rserver\s+$rserver_name -> RServer

RServer
  ^\s+rserver\s+$rserver_name -> Continue.Record
  ^\s+inservice

Cisco ACE配置的一部分: ...... 在

^{pr2}$

。。。。。。在

运行后ace.py脚本I没有预期的结果作为textFSM表:

$ ./ace.py
 --- [2018-05-30 16:47:52.892697] --- Start Timestamp ---
 --- [+0.000116 sec] --- Parse: ./textFSM/ace_serverfarm_template.textfsm ---
['Serverfarm_name', 'load_balance_method', 'probe_name', 'rserver_name']
['SF-TEST1-3.8083', 'hash', 'TEST-3.8083', ['lala_server438', 'lala_server439']]
Write 1 records

模板文件中的错误是什么?如何更改它以便解析每个服务器场。(结果我只有第一张唱片)?在


Tags: name服务器模板valueloadstartmethodcisco
1条回答
网友
1楼 · 发布于 2024-09-27 17:43:52

我找到了临时的解决方案,但是将rserver列字段作为rserver的“列表”会更方便。在

解决方法:

Value Filldown Serverfarm_name (\S+)
Value Filldown load_balance_method (\S+)
Value Filldown probe_name (\S+)
Value Required rserver_name (\S+)

Start
  ^serverfarm\s+host\s+$Serverfarm_name
  ^\s+predictor\s+$load_balance_method
  ^\s+probe\s+$probe_name
  ^\s+rserver\s+$rserver_name -> Record RServer

RServer
  ^\s+rserver\s+$rserver_name
  ^\s+inservice -> Start

但这将在FSM表中生成更多行。如果我假设一个服务器场有4台服务器,那么将有4行。。一个也没有。在

有人知道如何更改模板,以便在最后一列“rserver_name”中为每个服务器场和rserver列表添加一行

输出:

^{pr2}$

相关问题 更多 >

    热门问题