使用 xen 命令行查找最新的快照

使用 xen 命令行查找最新的快照

我正在使用 Xen,并且对于我们的每个 VM,我们都设置了一个流程,以便每天早上为 VM 创建一个新快照,并保留最后七个快照。

我现在正在尝试编写一个脚本来测试恢复每个虚拟机的最新快照。

在 Xen 命令行中,我可以使用以下命令获取给定 VM 的所有快照列表:

xe snapshot-list snapshot-of=${vm_uuid}

它返回以下格式的七个整数:

uuid ( RO)                : fc6cb150-b264-830e-4fb9-7fec030e434d
          name-label ( RW): 20220616-0118
    name-description ( RW):
    is-vmss-snapshot ( RO): true

有没有一种简单的方法可以找出最新的一个,因为到目前为止,我所需要做的就是名称标签中的日期(例如20220616),但名称的第二部分(0118)会随着每个快照而变化,据我所知,我不能使用带有选项name-label的通配符xe,例如

xe snapshot-list snapshot-of=${vm_uuid} name-label=20220616*

答案1

所以我明白了这一点。

today=$(date +%Y%m%d)

ss_name=$(xe snapshot-list snapshot-of=${vm_uuid} | grep ${today} | awk -F: '{print $2}' | awk '{$1=$1};1')

ss_uuid=$(xe snapshot-list name-label="${ss_name}" | awk '{print $5}') echo $ss_uuid

echo ${ss_uuid}

因此,虽然它并没有严格地找到最新的一个,但只要快照的名称包含当前日期,并且快照是在今天拍摄的(并且今天只有一个快照),它就应该可以工作。

相关内容