rendered paste body#!/bin/bash
# VMWare Backup script
#==========================================================
# Date Ver By Changes
#==========================================================
# 03-11-2007 0.1 Patrick Dijkgraaf Initial version
#==========================================================
EXCLUDE=GuusGeluk
LOG="/var/log/backupvm.log"
BACKUPPATH="/home/backup"
echo "`date` VM Backup script started." >>${LOG}
for VM in `vmware-cmd -l` ; do
VMNAME=`vmware-cmd "$VM" getconfig displayName |awk '{print $3}'`
echo ${EXCLUDE} | grep -w -q ${VMNAME} && continue
echo " " >>${LOG}
echo "`date` Removing old Backup file for ${VMNAME}..." >>${LOG}
rm ${BACKUPPATH}/${VMNAME}.*
for VMSTATE in `vmware-cmd "$VM" getstate` ; do
if [ $VMSTATE = "on" ] ; then
VMWASON=1
echo " " >>${LOG}
echo "`date` Trying Soft shutdown of ${VMNAME}..." >>${LOG}
vmware-cmd "$VM" stop soft
if [ $? == 0 ] ; then
echo "`date` Soft shutdown of ${VMNAME} succeeded!" >>${LOG}
else
echo "`date` Soft shutdown of ${VMNAME} failed, performing Hard shutdown..." >>${LOG}
vmware-cmd "$VM" stop hard
if [ $? == 0 ] ; then
echo "`date` Hard shutdown of ${VMNAME} succeeded!" >>${LOG}
else
echo "`date` Hard shutdown of ${VMNAME} failed." >>${LOG}
fi
fi
fi
done
echo " "
echo "`date` Creating backup of ${VMNAME}..." >>${LOG}
tar -czf ${BACKUPPATH}/${VMNAME}.tgz ${VM%/*}/
if [ $? == 0 ] ; then
echo "`date` Backup of ${VMNAME} succeeded!" >>${LOG}
else
echo "`date` Backup of ${VMNAME} failed!" >>${LOG}
fi
if [ $VMWASON = "1" ] ; then
echo " " >>${LOG}
echo "`date` Starting up ${VMNAME}..." >>${LOG}
vmware-cmd "$VM" start
if [ $? == 0 ] ; then
echo "`date` Startup of ${VMNAME} succeeded!" >>${LOG}
else
echo "`date` Startup of ${VMNAME} failed!" >>${LOG}
fi
fi
done
echo " " >>${LOG}
echo "`date` VM Backup script finished." >>${LOG}