#!/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}