TextFSM 是由 Google 开发的一个 Python 模块,旨在通过模板解析半结构化文本。虽然最初设计用于处理网络设备的 CLI 输出,但其应用范围广泛。
-
解析网络设备的接口状态:
通过解析网络设备的接口状态命令输出,提取接口名称、状态和速率等信息。
示例模板:
Value Interface (\S+)
Value Status (\S+)
Value Speed (\d+)
Start
^${Interface}\s+${Status}\s+${Speed} -> Record
-
提取日志文件中的错误信息:
从系统日志中提取错误级别的日志条目,包括日期、时间和错误消息。
示例模板:
Value Date (\d{4}-\d{2}-\d{2})
Value Time (\d{2}:\d{2}:\d{2})
Value LogLevel (ERROR)
Value Message (.+)
Start
^${Date} ${Time} ${LogLevel} ${Message} -> Record
-
解析配置文件中的参数:
从配置文件中提取特定参数及其对应的值。
示例模板:
Value Key (\w+)
Value Value (\S+)
Start
^${Key}=${Value} -> Record
-
处理命令输出的统计信息:
解析命令输出中的统计数据,例如 CPU 使用率、内存使用情况等。
示例模板:
Value Metric (\w+)
Value Value (\d+)
Start
^${Metric}:\s+${Value}% -> Record
-
提取网页中的链接和标题:
从 HTML 文本中提取超链接及其对应的标题。
示例模板:
Value URL (https?://\S+)
Value Title (.+?)
Start
^<a href="${URL}">${Title}</a> -> Record
-
解析设备的路由表信息:
从路由器的路由表输出中提取目的地、下一跳等信息。
示例模板:
Value Destination (\S+)
Value NextHop (\S+)
Start
^${Destination}\s+${NextHop} -> Record
-
处理防火墙规则列表:
解析防火墙配置,提取规则的源地址、目的地址和动作等信息。
示例模板:
Value Source (\S+)
Value Destination (\S+)
Value Action (\w+)
Start
^${Source}\s+${Destination}\s+${Action} -> Record
-
提取系统进程列表:
从系统进程列表中提取进程 ID、名称和状态等信息。
示例模板:
Value PID (\d+)
Value Name (\S+)
Value Status (\w+)
Start
^${PID}\s+${Name}\s+${Status} -> Record
-
解析磁盘使用情况:
从磁盘使用情况报告中提取文件系统、已用空间和可用空间等信息。
示例模板:
Value Filesystem (\S+)
Value Used (\d+)
Value Available (\d+)
Start
^${Filesystem}\s+\d+\s+${Used}\s+${Available} -> Record
-
处理用户登录记录:
解析用户登录日志,提取用户名、登录时间和来源 IP 等信息。
示例模板:
Value Username (\S+)
Value LoginTime (\S+ \d+ \d+:\d+:\d+)
Value SourceIP (\d+\.\d+\.\d+\.\d+)
Start
^${Username}\s+${LoginTime}\s+${SourceIP} -> Record