Backup incremental com montagem automática e e-mail

Publicado por Denilson Martins (última atualização em 06/08/2015)

[ Hits: 6.259 ]

Homepage: www.compels.net

Download backup-auto-mail.sh




Script para backup incremental de dados com montagem automática do dispositivo de armazenamento, com e-mail de status.

Para o envio do e-mail de status será necessário que tenha o programa Sendmail instalado.

Para a montagem automática deve-se obter o UUID do dispositivo de armazenamento e cadastrá-lo no fstab:

Execute o comando blkid, no retorno é possível obter o UUID do dispositivo e seu formato de partição, abaixo um exemplo com 3 HDs, onde o primeiro é para o sistema operacional e os demais para backup:

# blkid

/dev/sda1: UUID="d38642d1-34f9-43ae-b826-b8bae3f92bc9" TYPE="ext4"
/dev/sdb1: UUID="c8b0366c-d3fb-42f2-849f-d2b979e4ffbf" TYPE="ext4"
/dev/sdc1: UUID="3d090cf7-ba03-437a-b60e-7dd543c95d90" TYPE="ntfs"

Com o UUID em mãos, acrescente no fstab, no exemplo vou acrescentar o sdb1 e o sdc1 porém com o UUID sem estar entre aspas.

Caso algum dos HDs utilize USB a montagem automática por parte do sistema operacional não estará disponível, sendo que a montagem deverá ser feita manualmente. Para o script esta montagem já será realizada no própio.

# vim /etc/fstab

# HD1 - COMPARTILHAMENTOS
UUID=c8b0366c-d3fb-42f2-849f-d2b979e4ffbf  /compartilhamentos  ext4  0  2
# HD2 - BACKUP
UUID=3d090cf7-ba03-437a-b60e-7dd543c95d90  /backup             ntfs  0  2

Depois de ter acrescido os HDs no fstab, reinicie o serviço udev:

# /etc/init.d/udev restart

Por fim, parametrize o script da maneira que for adequada e o execute.

  



Esconder código-fonte

#!/bin/bash

####################### FUNCOES #######################

backup(){

    if [ -d $destino ]
    then
        umount $destino        # Certifica que o destino esta desmontado
        mount $destino     # Realiza a montagem com base no fstab
        executaBackup
    else
        mkdir $destino
        echo "Diretorio $destino criado!"
        umount $destino        # Certifica que o destino esta desmontado
        mount $destino     # Realiza a montagem com base no fstab
        executaBackup
        fi
}

executaBackup(){

    # Pega tamanho do dispositivo montado na particao destino
    tam=$(df -h | grep $destino | awk '{print $2}' |  sed "s/G//")

    echo "Testando tamanho do disco montado em:"
    echo "$destino --> Tamanho = $tamanho"

    # Compara tamanho HD montado com o tamanho do HD Destino
    if (( $tam == "$tamdest" ))
    then
        echo "Disco ok! Realizando backup!"
        rsync -Cravzpt $origem $destino

        # email enviado por parametros (email "parametro1" "parametro2")
        email "Backup $origem Realizado!" "O backup dos dados foi realizado!"
    else
        echo "Disco errado! Backup nao sera realizado!"
        email "Erro no Backup $origem!" "Verifique o Destino para Backup!"
    fi
}

email(){
    assunto=$1
    mensagem=$2
    sendEmail -f $emailOrigem -t $emailDest -u "$assunto" -m "$mensagem" -s $servidor:$porta -xu $emailOrigem -xp $senhaEmail
}

####################### VARIAVEIS #######################
# Variaveis para o backup
origem=/compartilhamentos                       # Origem do backup
destino=/backup-500                        # Destino do backup
tamdest=466                                    # Tamanho Destino (Disco, Pendrive)

# Variaveis para email
servidor=smtp.mail.net                            # Servidor email
porta=587                                     # Porta servidor email
emailOrigem=mail@mail.net                     # Email Origem
senhaEmail=senha                                   # Senha email origem
emailDest=outromail@outromail.net     # Email Destino

backup

Scripts recomendados

Script de backup MySQL [melhorado]

Backup de logs do sistema

Backup Database MySQL Automatizado

Script de backup de usuários do sistema

Backup-Menu - Backup com menu de ajuda, sair e fazer backup


  

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