Backup incremental com montagem automática e e-mail

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

[ Hits: 6.380 ]

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

Backup da pasta de usuário em sistemas GNU/Linux sem copiar os arquivos ocultos

clonagem de disco

Enviando e-mail localmente após o backup para monitoramento

Backup usando o tar com o gzip

Backup de banco de dados 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