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)만 확인하면 되지만 이름의 두 번째 부분( 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}

따라서 엄밀히 말하면 가장 최근의 것을 찾는 것은 아니지만 스냅샷의 이름에 현재 날짜가 포함되어 있고 오늘 스냅샷이 촬영된 경우(그리고 오늘은 스냅샷이 하나만 있는 경우) 작동할 것입니다.

관련 정보