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
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.
#!/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
Backup da pasta de usuário em sistemas GNU/Linux sem copiar os arquivos ocultos
Enviando e-mail localmente após o backup para monitoramento
Backup usando o tar com o gzip
Backup de banco de dados MySQL
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
É cada coisa que me aparece! - não é só 3% (3)
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta