You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则从故障ESXi主机的hostd日志中提取对应虚拟机名称

ESXi主机故障日志提取虚拟机名称解决方案

方案1:ESXi命令行直接生成列表

ESXi自带的grep默认不支持PCRE正则预查语法,你原来的正则无法直接运行,直接用以下命令即可输出去重后的故障虚拟机名称:

grep "vim.fault" hostd.log | sed -n 's/.*\/\([^\/]*\)\.vmx.*/\1/p' | sort | uniq

命令逻辑说明:

  • 先筛选出所有包含VM加载失败的日志行
  • 用sed匹配每行中最后一个/到.vmx之间的内容,也就是目标虚拟机名称
  • 最后排序去重得到无重复的列表

方案2:Notepad++中处理导出的日志

如果已经把grep -E "vim.fault" hostd.log的结果粘贴到了Notepad++中,按以下步骤操作即可提取:

  1. 按下Ctrl+H打开替换面板
  2. 「查找目标」填写正则:^.*\/([^\/]+)\.vmx.*$
  3. 「替换为」填写:$1
  4. 查找模式选择「正则表达式」,取消勾选「点匹配换行符」
  5. 点击「全部替换」,剩余内容就是所有虚拟机名称,手动去重即可

原正则失效原因

你之前用的(?=\/).*(?=.vmx)存在两个问题:

  • 属于贪婪匹配,会匹配行内第一个/到.vmx前的所有路径内容,不会单独提取VM名称
  • ESXi默认grep不支持PCRE正则的预查语法,因此无返回结果

内容的提问来源于stack exchange,提问作者Run.Bat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:45:04