DRX-srv-xenserver-ip10-backup vms semanal

De Wiki NOC

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!
Ferramentas pessoais