Servidor drx-srv-xenserver-ip10 - script backup_vms_semanal.sh
#!/bin/bash
PATH=/opt/xensource/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
export PATH
BACKDIR=/backup2/vms/issabel/
LOG=/var/log/xen/xen-`date +%d-%m-%Y`.log
BACKDATE=`date +%d-%m-%Y`
echo "Iniciando o backup em: `date +%d-%m-%Y-%H:%M:%S`" > $LOG
if [ -d $BACKDIR ]
then
echo "Diretório de backup já existe" >> $LOG
else
echo "$BACKDIR não existe, criando agora" >> $LOG
mkdir -p $BACKDIR
fi
echo -e "\n Gerando lista das VMs rodando no Host \n" >> $LOG
xe vm-list power-state=running|grep name-label| grep -v "Control domain on host:" | sed 's/ name-label ( RW): //g' > /tmp/xen_back1
cat /tmp/xen_back1 >> $LOG
if [ $? -eq 0 ]
then
echo -e "\n Listagem das VMs concluida com sucesso \n" >> $LOG
else
echo -e "\n Ocorreu um erro ao obter listagem do Host \n" >> $LOG
fi
VMLIST=`cat /tmp/xen_back1 | wc -l`
COUNT=0
until [ $VMLIST = $COUNT ]
do
COUNT=`expr $COUNT + 1`
VM=`gawk FNR==$COUNT /tmp/xen_back1`
echo "Criando snapshot de $VM" >> $LOG
SNAPSHOT=`xe vm-snapshot vm="$VM" new-name-label="$VM"-$BACKDATE new-name-description="Snapshot Temporário" `
if [ $? -eq 0 ]
then
echo -e "Snapshot da vm $VM criado com sucesso \n" >> $LOG
else
echo -e "Ocorreu um erro ao tentar fazer snapshot da vm $VM \n" >> $LOG
fi
echo "Convertendo o snapshot $SNAPSHOT da vm $VM para Template" >> $LOG
xe template-param-set is-a-template=false uuid=$SNAPSHOT
if [ $? -eq 0 ]
then
echo -e "Conversão do snapshot $SNAPSHOT da vm $VM realizado com sucesso \n" >> $LOG
else
echo -e "Ocorreu um erro ao tentar converter o snapshot $SNAPSHOT da vm $VM em um Template \n" >> $LOG
fi
echo "Exportando $SNAPSHOT da vm $VM"
echo "Exportando UUID=$SNAPSHOT" >> $LOG
xe vm-export vm=$SNAPSHOT filename=$BACKDIR/"$VM"-$BACKDATE.xva compress=true
if [ $? -eq 0 ]
then
echo -e "Processo de conversão do snapshot $SNAPSHOT e backup da vm $VM finalizado com sucesso \n" >> $LOG
else
echo -e "Processo de conversão do snapshot $SNAPSHOT para backup da vm $VM não pode ser realizado \n" >> $LOG
fi
echo "Removendo $SNAPSHOT da vm $VM"
echo "Removendo UUID=$SNAPSHOT">> $LOG
xe snapshot-uninstall uuid=$SNAPSHOT force=true
if [ $? -eq 0 ]
then
echo -e "Remoção do snapshot $SNAPSHOT da vm $VM ocorreu com sucesso \n" >> $LOG
else
echo -e "Ocorreu um erro ao tentar remover $SNAPSHOT vinculado a vm $VM \n" >> $LOG
fi
echo -e "\n" >> $LOG
done
rm -rf /tmp/*
echo "Processo finalizado. `date +%d-%m-%Y-%H:%M:%S`" >> $LOG
cat $LOG | sendEmail -f log@lupainformatica.com.br -t backup@lupainformatica.com.br -u "DRX-XEN-BKP-VMS-semanal" -o tls=auto -s webmail.lupainformatica.com.br:587 -xu log@lupainformatica.com.br -xp lupa*2010!