Quantcast
Channel: LinuxReaders » Virtualization
Viewing all articles
Browse latest Browse all 10

XenServer- Take VM Snapshots using Bash

$
0
0

Following is the script that can be used to take snapshots of running vm,
once run it will send mail to ADMIN for the list of the VM snapshots

#!/bin/bash 
#dpthakar@gmail.com
#http://www.linuxreaders.com
#
#this basic script is created to take xenserver guest snapshots
#ths script is tested only on standalone server NOT ON SERVER POOL
 
 
PATH=/opt/xensource/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
export PATH
SNAPDATE=`date +%Y-%m-%d`
ADMIN=dpthakar@gmail.com
 
echo -e "subject: snapshots done on $HOSTNAME \n" > /tmp/xen_snapshot.mail
 
#generate list of RUNNING VM ONLY
echo -e "Generating List of Running VMs"
xe vm-list power-state=running|grep name-label| grep -v "Control domain on host:"  | sed 's/     name-label ( RW): //g' > /tmp/xen_snapshot1
echo -e "List of the VM for snapshot" >> /tmp/xen_snapshot.mail
cat /tmp/xen_snapshot1 >> /tmp/xen_snapshot.mail
echo -e "\n" >> /tmp/xen_snapshot.mail
#create a snapshot for each vm
VMLIST=`cat /tmp/xen_snapshot1 | wc -l`
COUNT=0
until [ $VMLIST = $COUNT ]
do
COUNT=`expr $COUNT + 1`
VM=`gawk FNR==$COUNT /tmp/xen_snapshot1`
 
#create snapshot 
echo "Creating Snapshot for $VM"
echo -e "Creating Snapshot for $VM" >> /tmp/xen_snapshot.mail
#SNAPSHOT=`xe vm-snapshot vm="$VM"  new-name-label="$VM"-$SNAPDATE new-name-description="backup snapshot" `
xe vm-snapshot vm="$VM"  new-name-label="$VM"-$SNAPDATE new-name-description="backup snapshot" 
#or you can use following
#xe vm-snapshot-with-quiesce vm="$VM"  new-name-label="$VM"-$SNAPDATE new-name-description="backup snapshot"
if [ $? -eq 0 ]
then
echo -e "snapshot is Successful for $VM \n"
echo -e "snapshot is Successful for $VM \n" >> /tmp/xen_snapshot.mail
else
echo -e "snapshot failed for $VM \n" 
echo -e "snapshot failed for $VM \n" >> /tmp/xen_snapshot.mail
fi 
done
 
cat /tmp/xen_snapshot.mail | sendmail  $ADMIN 
rm -rf /tmp/xen_snapshot*

For mails to work, make sure followings are mentioned in /etc/ssmtp/ssmtp.conf
mailhub=SMTP-SERVER
rewriteDomain=-DOMAIN-NAME

(Visited 648 times, 1 visits today)

Viewing all articles
Browse latest Browse all 10

Trending Articles