
Estou usando o Xen, e para cada uma de nossas VMs configuramos um processo para criar um novo instantâneo da VM todas as manhãs, com os últimos sete sendo mantidos.
Agora estou tentando escrever um script para testar a restauração do instantâneo mais recente para cada VM.
Na linha de comando do Xen, posso obter uma lista de todos os instantâneos de uma determinada VM usando:
xe snapshot-list snapshot-of=${vm_uuid}
que retorna sete inteiros no seguinte formato:
uuid ( RO) : fc6cb150-b264-830e-4fb9-7fec030e434d
name-label ( RW): 20220616-0118
name-description ( RW):
is-vmss-snapshot ( RO): true
Existe uma maneira fácil de descobrir qual é o mais recente, já que até agora tudo o que preciso é a data no rótulo do nome (por exemplo 20220616
), mas a segunda parte do nome ( 0118
) muda a cada instantâneo, e como Pelo que sei, não posso usar curingas com a name-label
opção de, xe
por exemplo
xe snapshot-list snapshot-of=${vm_uuid} name-label=20220616*
Responder1
Então eu descobri isso.
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}
Portanto, embora não seja estritamente necessário encontrar o mais recente, desde que os instantâneos contenham a data atual no nome e um instantâneo tenha sido tirado hoje (e haja apenas um instantâneo hoje), ele deverá funcionar.