Backup incremental com montagem automática e e-mail
Publicado por Denilson Martins (última atualização em 06/08/2015)
[ Hits: 6.251 ]
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 do PostgreSQL 8.3 e aviso por e-mail
Limpeza dos dados do rConfig (ferramenta open-source de gerenciamento de configuração
Realiza backup de VMs ligadas no XenServer 6.5
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Não consigo acessar os modos de desempenho (2)
Ubuntu — tentando iniciar o windows? (0)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba