分屏为什么会坑人
设备默认分屏输出:华为与 H3C 在满屏后显示 ---- More ----,思科提示按空格继续。人工查看不受影响,但脚本抓取长输出时会卡在半截,而且不会报错——脚本拿到的是残缺数据。三厂都有关闭分屏的开关,差别在生效范围:华为是临时的,H3C 会写入配置长期生效,思科只影响当前会话。
基本信息
| 适用平台 | 思科 IOS / 华为 VRP / H3C Comware |
|---|---|
| 华为命令 | screen-length 0 temporary |
| 思科命令 | terminal length 0 |
| H3C 命令 | screen-length disable |
典型使用场景
- 自动化巡检脚本抓取配置或长输出
- 人工导出大量表项,如路由表、MAC 表、ARP 表
- 粘贴长配置逐行核对时避免被分页打断
- 排查「抓到的数据不完整、内容只到一半」类问题
- 会话结束后确认是否需要恢复原来的分屏设置
华为 VRP
华为 VRP
<Huawei> screen-length 0 temporary # 临时关闭当前会话分屏,重新登录后恢复
<Huawei> display current-configuration
<Huawei> display current-configuration | include vlan # 减少输出也能降低触发分屏的概率思科 IOS
思科 IOS
SW-CORE-01# terminal length 0 # 只影响当前会话
SW-CORE-01# show running-config
SW-CORE-01# show running-config | include ip route
SW-CORE-01# terminal length 24 # 恢复默认翻页H3C Comware
H3C Comware
<H3C> screen-length disable # 会写入配置,长期生效
<H3C> display current-configuration
<H3C> undo screen-length disable # 恢复分屏三厂对照与生效范围
| 厂商 | 关闭命令 | 生效范围 |
|---|---|---|
| 华为 VRP | screen-length 0 temporary | 仅当前会话,重新登录即恢复 |
| 思科 IOS | terminal length 0 | 仅当前会话,不写入配置 |
| H3C Comware | screen-length disable | 写入配置长期生效,需 undo 恢复 |
| 通用替代 | 在命令后加过滤条件精简输出 | 降低触发概率,但不利于完整抓取 |
分屏没关时脚本读不到完整输出,只抓到前半截且不报错,这是自动化采集最容易被忽略的坑。建议把关闭分屏写进脚本的会话初始化步骤,每次登录后统一执行。
H3C 的 screen-length disable 属于配置级命令,会被保存进配置文件。审计或交接时需要说明用途,否则容易被当成异常配置项追查。
除了关闭分屏,更省事的做法是在采集命令上直接加过滤条件,只取需要的段落:输出量小了就不容易触发分页,也降低脚本解析出错与传输压力,代价是需要事先明确要抓哪些内容。