3/3 – Backup Automático com Linux – Script de Backup.

Olá pessoal, chegamos a nosso terceira e última etapa desta série de artigos. Neste artigo iremos falar de SystemD e Script Shell com o objetivo de finalizarmos nosso backup Automático no Linux. Já aprendemos nos artigos anteriores sobre UDEV e Telegram Bot, agora falta pouco, bora lá.



Considerações

Irei levar em consideração que já tenha lido os artigos anteriores, se caso ainda não leu, segue os links. Da uma conferida depois volte aqui para continuarmos.

1/3 – Backup Automático com Linux – Regras UDEV.
2/3 – Backup Automático com Linux – Notificações Telegram.



1) Criando targets no SystemD.

Em nosso primeiro artigo, vimos como criar regras no UDEV. De ante mão, naquela momento, criamos uma regra que aponta para uma target.service chamada bkpraff.service. Esta target tem por objetivo chamar nosso script de backup assim que o hd-externo é plugado ao repositório Linux.

Obs: Já tratei a criação de targets do SystemD no artigo “Adicionando script na inicialização do Linux com SystemD“, depois da uma conferida.

Vamos então criar uma target chamada bkpraff.service  dentro de /etc/systemd/system/ conforme ilustrado abaixo:

				
					vim /etc/systemd/system/bkpraff.service
				
			

Adicione o seguinte conteúdo ao arquivo:

				
					[Unit]
Description=Executa o Script de backup assim que for envocado.

[Service]
Type=simple
ExecStart=/bin/sh /etc/scripts/bkp-hd-externo.sh

[Install]
WantedBy=multi-user.target
				
			

Salve e saia do arquivo.

Agora vamos adicionar nosso target a inicialização do Linux. Para isso, execute o comando  conforme ilustrado abaixo:

				
					systemctl enable bkpraff.service

				
			

Pronto nossa target já esta criada e adicionada a inicialização, precisamos agora criar nosso script shell.

2) Script de Backup.

Criei um script básico com intuito de demonstrar a funcionalidade proposta na série de artigos, fique a vontade para fazer melhorias e implementar o script da forma que achar melhor.

				
					#!/bin/bash

#source telegram-notify
PATH=$PATH:/usr/local/sbin

# Pesquisa hd para ver se está conectado.
conectado=`blkid | grep F8DE7ADDDE7A941A`

DATA=`date +%Y-%m-%d`
DATAHORA=`date +%Y-%m-%d-%H.%M`

if [ ! -z "$conectado" ]; then { # Se conectado

# Monta partição utilizando o systemD.
systemctl start mnt-backup.mount

echo "------------------------------------------------------------------------" >> /var/log/backup/bkp-"$DATA".log
echo "Dispositivo UUID=F8DE7ADDDE7A941A montado!" >> /var/log/backup/bkp-"$DATA".log
echo "Backup iniciado em $DATAHORA" >> /var/log/backup/bkp-"$DATA".log

#Informa via Telegram Bot que o disco foi conectado e que o bkp iniciará.
sh -c 'telegram-notify --success --text "O HD-Externo UUID=F8DE7ADDDE7A941A *foi conectado*, iniciando backup..."'

#Realiza sincronia de arquivos com hd externo.
echo "Executando rsync" >> /var/log/backup/bkp-"$DATA".log
rsync -avh /dados/repositorio/ /mnt/backup/srvbkp/repositorio/ >> /var/log/backup/bkp-"$DATA".log

echo "Backup finalizado em $DATAHORA" >> /var/log/backup/bkp-"$DATA".log
echo "------------------------------------------------------------------------" >> /var/log/backup/bkp-"$DATA".log

#Desmonta ponto de montagem.
umount /mnt/backup

sleep 30

#Informa via telagram que o hd pode ser desconectado.
sh -c '/usr/local/sbin/telegram-notify --success --text "*Backup finalizado*, o hd externo pode ser removido..."'
exit 0
} else {
echo "O dispositivo NÃO está disponível para automontagem SystemD" >> /var/log/backup/bkp-"$DATA".log
echo "------------------------------------------------------------------------" >> /var/log/backup/bkp-"$DATA".log
sh -c 'telegram-notify --error --text "O HD-Externo UUID=F8DE7ADDDE7A941A *Não está disponível* para automontagem SystemD, por favor verifique."'
exit 0
} fi
exit 0
				
			

Pronto, agora é só espetar o hd-externo no repositório Linux para o script de backup rodar.



CONCLUSÃO

Através deste artigo demostramos como criar uma target do SystemD para rodar um script de backup que tem por objetivo realizar cópias de forma automática utilizando rsync assim que o hd-externo de destino é plugado ao repositório Linux de origem.

Sendo assim chegamos ao fim de nossa série de Backup Automático com Linux, espero que tenha gostado, e que você possa desfrutar da ideia aqui abordada, implementando soluções em outras atividades e rotinas de trabalho.

Se você gostou deste post e através dele pude lhe ajudar, o que acha de aproximarmos nosso contato? Siga meu blog, twitter e me adicione no Linkedin, aproveite para classificar algumas das minhas competências/recomendações, este simples gesto faz toda a diferença.

Att,
Rafael Oliveira
SysAdmin

Você pode compartilhar esse artigo.

Siga o Blog Via E-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 46 outros assinantes

Sobre o Autor

Rafael Oliveira Maria - Linux

Rafael Oliveira

Bacharel em Sistemas de Informação, SysAdmin, Professor, Blogueiro e Entusiasta Linux.

Certificados:

LPIC-1-Large
LPIC-2
LinuxPlus Logo Certified
itil-foundation-digital-badge

Gostou do conteúdo? Ajude-me a manter o blog.

PicPay - Linux

Aceitamos pagamentos e doações via PicPay link picpay.me/rafaeloliveimar

Ficou com dúvida? Alguma Sugestão ou Elogio? Deixe seu comentário!