29 lines
562 B
Bash
Executable File
29 lines
562 B
Bash
Executable File
#!/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
|