Backup de Máquina Virtual - XenServer

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

[ Hits: 3.549 ]

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

sync_local - backup/restauração local

Backup de diretórios do sistema Linux

Backup de Roteadores e Switches

BTRFS - Gerenciamento de snapshot por quantidade

Backup de bases MySQL


  

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