#!/bin/bash
set -o pipefail
SENHA='In0v@t3ch'; DEST=IT003629-IAAS-FV-WCI; NODE=192.168.100.12; VMID=229
BASE=/NFS01/migrate; SERVE=$BASE/$DEST
LOG=$BASE/logs/$DEST-$(date +%Y%m%d-%H%M%S).log
mkdir -p "$SERVE" "$BASE/logs"
chmod 777 "$SERVE" 2>/dev/null || echo "$SENHA" | sudo -S chmod 777 "$SERVE"
exec > >(tee -a "$LOG") 2>&1
no(){ ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no -o BatchMode=yes root@$NODE "$@"; }
echo "=== $(date '+%H:%M:%S') INICIO corte $DEST (vmid $VMID) ==="
echo "estado inicial: $(no "qm status $VMID")"
echo "--- shutdown gracioso (qemu-ga presente) ---"
no "qm shutdown $VMID --timeout 300" || { echo "shutdown falhou, forcando stop"; no "qm stop $VMID"; }
for i in $(seq 1 72); do
  s=$(no "qm status $VMID" 2>/dev/null | awk '{print $2}')
  echo "  [$i] estado: $s"
  [ "$s" = "stopped" ] && break
  sleep 5
done
[ "$(no "qm status $VMID" | awk '{print $2}')" != "stopped" ] && { echo "ABORT: VM nao parou"; exit 2; }
echo "=== $(date '+%H:%M:%S') VM PARADA ==="
no "lvchange -ay /dev/VG_Storage0/vm-229-disk-0 2>/dev/null; ls -l /dev/VG_Storage0/vm-229-disk-0"
echo "--- convertendo LV -> qcow2 (150G) ---"
no "qemu-img convert -p -O qcow2 /dev/VG_Storage0/vm-229-disk-0 /mnt/pve/NFS01/migrate/$DEST/$DEST-raw.qcow2" || { echo "ABORT conversao"; exit 3; }
echo "=== $(date '+%H:%M:%S') CONVERSAO OK ==="
ls -lh "$SERVE/"
qemu-img info "$SERVE/$DEST-raw.qcow2"
df -h /NFS01 | tail -1
