#!/bin/sh # vim: set sw=4 ts=4 sts=4 et : list_vms() { if [ $# -gt 0 ]; then echo "$@" | xargs -n1 else virsh list --name fi } src=$1 shift 2>&- dest=$1 shift 2>&- if [ -z "${src}" ] || [ -z "${dest}" ]; then printf 'usage: %s source_uri dest_uri [name [...]]\n' "${0##*/}" exit 2 fi export LIBVIRT_DEFAULT_URI="${src}" list_vms "$@" | while read name; do [ -n "${name}" ] || continue printf 'Migrating %s ...\n' "${name}" virsh migrate "${name}" "${dest}" --live --persistent --undefinesource --verbose done