Backup incremental com montagem automática e e-mail

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

[ Hits: 5.637 ]

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
[email protected]                     # Email Origem
senhaEmail=senha                                   # Senha email origem
[email protected]     # Email Destino

backup

Scripts recomendados

Renomear múltiplos arquivos

Script de Back Up, com limpeza de back ups antigos e e-mail com logs

rotate.sh - Rotaciona arquivos de acordo com a data

Script de backup - rar

Backup Máquina do Tempo com Rsync


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts