You need to enable JavaScript to run this app. Ansible新手咨询:简化ps命令输出解析、跳过表头提取进程名的方法
优惠活动
大模型
产品
解决方案
定价
更多

Ansible新手咨询:简化ps命令输出解析、跳过表头提取进程名的方法

Ansible 提取ps输出进程名的优化方法咨询

我是Ansible初学者,目前想实现的需求很明确:

  • 执行ps类的系统命令
  • 逐行处理命令返回的输出内容
  • 跳过包含表头(如PID这类字段)的第一行
  • 仅提取进程名称列的取值,不需要其他列的内容

我现在的实现已经能做到跳过输出列表的第一个表头元素,但总觉得绕了弯,不确定是不是有更简便的写法——比如把输出存入单独数组,循环遍历每个条目时直接用awk或sed过滤进程名,会不会比现在的方案更优?

我目前写的Playbook实现如下:

name: Get process
hosts: localhost

tasks:
  - name: Get process
    command: "ps"
    register: ps_output

  - name: Set list length
    set_fact:
      array_end_index: "{{ ps_output.stdout_lines | length - 1 }}"
      
  - name: List all but last item
    debug: 
      msg: "{{ ps_output.stdout_lines[item] }}"
    loop: "{{ range(1, (array_end_index | int)) | list }}"

我自己也判断这版实现大概率不是最优解,想请教有没有更简便的实现路径?

内容的提问来源于stack exchange,提问作者TCJR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 06:36:01