Backup de Máquina Virtual - XenServer

Publicado por Estevam Neto (última atualização em 03/03/2020)

[ Hits: 3.565 ]

Download Script-BackupXenServer.sh




Script de Backup das máquinas virtuais do XenServer, o processo consiste em algumas etapas:

1) Criação de um servidor para armazenamento com SAMBA;
2) Instale o sSMTP para o envio dos LOGs confirmando qual o status do Backup;
3) Configure o sSMTP para enviar o e-mail via GMAIL;
4) Configure o agendamento com o Crontab, fazendo o backup uma vez por semana, aos domingos e enviando LOGs as segundas.

  



Esconder código-fonte

#!/bin/bash
#
# ::: SCRIPT DE BACKUP DE VMs XenServer :::
# ::: AUTOR: ESTEVAM NETO               :::
# ::: VERSÃO: 1.0                       :::
#
DATA=$(date +%d_%m_%Y)
DESTINO="/mnt/backup"
SERVER="xxx.xxx.xxx.xxx"
USERW="UsuarioCompartilhamento"
PASSW="SenhaUsuario"
#
# Removendo arquivo de Logs
rm -rf /home/*.txt
#
envio_sucesso () {
# Criando e-mail
echo "From: username@gmail.com" > /home/email.txt
echo "To: username@gmail.com" >> /home/email.txt
echo "Subject: LOG-SUCESSO-$DATA" >> /home/email.txt
echo "" >> /home/email.txt
}
#
envio_erro_comp () {
# Criando e-mail
echo "From: username@gmail.com" > /home/email.txt
echo "To: username@gmail.com" >> /home/email.txt
echo "Subject: LOG-ERROR-COMPARTILHAMENTO-$DATA" >> /home/email.txt
echo "" >> /home/email.txt
}
#
# Verificando a existencia da pasta do Backup
#
if [ -d $DESTINO ]
    then
        echo ""
    else
        mkdir -p $DESTINO
fi
#
mount -t cifs -o username=$USERW,passwoard=$PASSW //$SERVER/OVAs $DESTINO 2> /dev/null
if [ $? -eq 0 ] then;
    for MAQUINA in $(xe vm-list is-control-domain=false is-a-snapshot=false | grep "uuid" | sed 's/uuid ( RO)           : //g'); do
        NOME_VM=$(xe vm-list uuid=$MAQUINA | grep "name" | sed 's/     name-label ( RW): //g')
        SNAPSHOT_VM=$(xe vm-snapshot uuid=$MAQUINA new-name-label=$NOME_VM\_$DATA)
        TEMPLATE_VM=$(xe template-param-set is-a-template=false ha-always-run=false uuid=$SNAPSHOT_VM)
        EXPORTAR_VM=$(xe vm-export vm=$SNAPSHOT_VM filename=/mnt/backup/$NOME_VM\_$DATA.xva)
        DEL_SNAP=$(xe vm-uninstall uuid=$SNAPSHOT_VM force=true)
        echo "VM $NOME_VM copiada com Sucesso" >> /home/LOG_BACKUP_VM_$DATA.txt
    done
        envio_sucesso
        echo "" >> /home/LOG_BACKUP_VM_$DATA.txt
        cat /home/LOG_BACKUP_VM_$DATA.txt >> /home/email.txt
        umount -l $DESTINO
else
    envio_erro_comp
    echo "Error ao montar o compartilhamento" > /home/LOG_BACKUP_VM_$DATA.txt
    echo "" >> /home/LOG_BACKUP_VM_$DATA.txt
    cat /home/LOG_BACKUP_VM_$DATA.txt >> /home/email.txt
    umount -l $DESTINO
fi
umount -l $DESTINO

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

# # # Configurando envio de e-mail # # #

1) Instale primeiro o sSMTP: sudo apt install ssmtp
2) Preserve o arquivo de configuração original: mv /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.old
3) Copiar e Colar a informações abaixo: nano /etc/ssmtp/ssmtp.conf

root=username@gmail.com
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=username@gmail.com
UseSTARTTLS=YES
AuthUser=username
AuthPass=password
FromLineOverride=YES

4) Preserve o arquivo de configuração original: mv /etc/ssmtp/revaliases /etc/ssmtp/revaliases.old
5) Copiar e Colar a informações abaixo: nano /etc/ssmtp/revaliases

root:username@gmail.com:smtp.gmail.com:587
localusername:username@gmail.com:smtp.gmail.com:587

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

# # # Colocando no agendamento # # # 

crontab -e

Pressione "i" para inserir a informação, copie e cole, depois pressione "esc"

0 23 * * 7     /home/backup.sh
0 5 * * 0     /usr/sbin/ssmtp username@gmail.com < /home/email.txt

para sair :wq

Scripts recomendados

Realiza backup de VMs ligadas no XenServer 6.5

Backup de bases MySQL

Script de Backup de Sistema

backup-kppp.sh

sync_local - backup/restauração local


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts