====== XenServer 8.x ======
===== Auto start VM =====
Turn on autostart
#!/bin/sh
# Turn on auto_poweron
xe vm-param-set uuid=$( xe vm-list name-label= --minimal ) other-config:auto_poweron=true
Turn off autostart
#!/bin/sh
# Turn off auto_poweron
xe vm-param-set uuid=$( xe vm-list name-label= --minimal ) other-config:auto_poweron=false
===== Backup metadata to other storage =====
#!/bin/bash
STORAGE_SR_NAME="/dev/sdb1"
if [ -e /etc/xensource/pool.conf ]; then
if [ "$(cat /etc/xensource/pool.conf)" = "master" ]; then
sruuid=$( xe sr-list name-label=${STORAGE_SR_NAME} --minimal )
"/opt/xensource/bin/xe-backup-metadata" -c -u $sruuid >/dev/null 2>&1
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t backup-metadata "ALERT exited abnormally with [$EXITVALUE]"
fi
fi
fi
exit 0
===== Snapshot and copy VM =====
Snapshot and copy VM (possibly to other storage)
#!/bin/bash
set -e
VMToCopy=
NewName=${VMToCopy}-copy
DestStorageName="Local Storage"
oldcopyid=$( xe vm-list name-label=$NewName --minimal )
#echo $oldcopyid
snapid=$( xe vm-snapshot name-label=$VMToCopy new-name-label=$NewName-$datestr )
#echo "$? ID: $snapid"
datestr=$( date +%Y-%m-%d_%R_%Z )
templateid=$( xe snapshot-copy new-name-label=$NewName uuid=$snapid sr-uuid=$( xe sr-list name-label="$DestStorageName" --minimal ) )
#echo "$? ID: $templateid"
xe template-param-set uuid=$templateid is-a-template=false
#echo "$? ID: $templateid"
xe snapshot-uninstall uuid=$snapid force=true > /dev/null
#echo "$?"
xe vm-param-remove uuid=$templateid param-name=other-config param-key=auto_poweron
xe vm-param-set uuid=$templateid name-description="Copy made: $datestr"
#echo "$?"
xe vm-reset-powerstate uuid=$templateid force=true
#echo "$?"
xe vm-uninstall vm=$oldcopyid force=true > /dev/null