xen コマンドラインを使用して最新のスナップショットを見つける

xen コマンドラインを使用して最新のスナップショットを見つける

私は Xen を使用しており、各 VM に対して毎朝 VM の新しいスナップショットを作成し、最後の 7 つを保存するプロセスを設定しています。

現在、各 VM の最新のスナップショットを復元するテストを行うスクリプトを作成しようとしています。

Xen コマンドラインでは、次のコマンドを使用して、特定の VM のすべてのスナップショットのリストを取得できます。

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

次の形式で 7 つのエントリを返します。

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

どれが最新かを簡単に確認する方法はありますか?今のところ、名前ラベルの日付(例:20220616)だけを確認すればよいのですが、名前の2番目の部分(0118)はスナップショットごとに変わります。また、私の知る限り、オプションでワイルドカードを使用することはできませname-labelxe

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}

したがって、厳密に最新のものを見つけるわけではありませんが、スナップショットの名前に現在の日付が含まれていて、スナップショットが今日作成されたものである限り (そして今日のスナップショットは 1 つだけである限り)、機能するはずです。

関連情報