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

如何以自动化友好格式编程列出qcow2文件的快照?

解决qemu-img快照列表输出为可自动化处理格式的方法

方法一:使用qemu-img原生JSON输出(推荐)

从QEMU 6.0及以上版本开始,qemu-img snapshot命令支持--output(或短选项-O)参数,可直接输出标准JSON格式:

qemu-img snapshot -l -O json ./image.qcow2

输出示例:

[
    {
        "id": 1,
        "tag": "appack-init",
        "vm-size": "3.72 GiB",
        "date": "2025-10-29 17:43:38",
        "vm-clock": "0000:01:04.537",
        "icount": "--"
    }
]

该格式可直接被Python、jq等自动化工具解析,无需额外处理。

方法二:脚本转换表格输出为CSV/JSON(兼容旧版QEMU)

如果你的QEMU版本低于6.0,没有原生JSON输出支持,可通过文本处理工具转换表格输出:

转换为CSV格式

用awk提取表格字段并生成CSV:

# 仅输出快照数据行
qemu-img snapshot -l ./image.qcow2 | awk 'NR>2 {print $1","$2","$3" "$4","$5" "$6","$7}'

如需包含表头:

(qemu-img snapshot -l ./image.qcow2 | awk 'NR==2 {print "ID,TAG,VM_SIZE,DATE,VM_CLOCK,ICOUNT"} NR>2 {print $1","$2","$3" "$4","$5" "$6","$7}')

输出示例:

ID,TAG,VM_SIZE,DATE,VM_CLOCK,ICOUNT
1,appack-init,3.72 GiB,2025-10-29 17:43:38,0000:01:04.537,--

转换为JSON格式

结合awk和jq生成标准JSON数组:

qemu-img snapshot -l ./image.qcow2 | awk 'NR>2 {printf "{\"id\": %s, \"tag\": \"%s\", \"vm_size\": \"%s %s\", \"date_time\": \"%s %s\", \"vm_clock\": \"%s\", \"icount\": \"%s\"}\n", $1, $2, $3, $4, $5, $6, $7, $8}' | jq -s '.'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 01:40:05