LINUX - CRIANDO BACKUP DA PASTA DO USUĂRIO DA HOME
Quem nunca se deparou com uma situação de perda de arquivos...perda atĂ© massiva...morte de um HD ou SSD? Recentemente tive essa experiĂȘncia justamente num momento em que estava demorando para fazer backups de arquivos pessoais e de trabalho. Resultado?
Um estrago incalculĂĄvel. Ainda tive algumas coisas que amenizaram. Backup recente de ferramentas de trabalho e um backup completo do sistema, o que me permitiu rapidamente restaurar o sistema num SSD interno ainda que de forma provisĂłria(esse SSD Ă© muuuito menor). De resto...foi perda total...muita coisa importante mesmo. Nessas horas acabo tendo preferĂȘncia pelos HDDs mecĂąnicos convencionais, mesmo que seja somente para realizar os backups crĂticos e nĂŁo usar para rodar o sistema operacional, jogos, etc...
EntĂŁo vamos ao motivo desse post.
CRIAR ROTINA DE BACKUPS
Antes de ter essa experiĂȘncia pra lĂĄ de traumĂĄtica tinha hĂĄbito de fazer backups bem manuais, selecionando o que considerava importante e copiando para mĂdias diferentes da original(mesmo que o SSD ou HDD tenha uma partição destinada a backups).
Isso me incomodou tanto...mas tanto que tenho passado os Ășltimos dias criando script e incrementando o dito cujo para as minhas necessidades.
EntĂŁo, tenha em mente que Ă© necessĂĄrio fazer backup regularmente e que nĂŁo adianta salvar sempre no mesmo lugar. Acredite em mim...as chances de dar uma encrenca federal sĂŁo bem grandes. Diversifique pra nĂŁo ficar na mĂŁo.
SCRIPTS PODEM AJUDAR
Como disse antes, costumava fazer as cópias de segurança na mão, selecionando os arquivos de diretórios e copiando para outros destinos. Isso pode ser bem cansativo.
Se as tarefas sĂŁo repetitivas e previsĂveis vocĂȘ pode automatizĂĄ-las utilizando scripts(Shell scripts...em Python...etc...).
Se vocĂȘ sabe de onde para onde jĂĄ tem uma parte que pode automatizar. TambĂ©m se o backup serĂĄ compactado. TambĂ©m pode automatizar essa tarefa.
Mais Ă frente vou mostrar como isso pode ser feito.
AGENDAR AS TAREFAS
Assim como vocĂȘ mesmo pode ter o hĂĄbito da regularidade, vocĂȘ pode fazer com que o script que criou para agilizar essas tarefas seja executado dentro de um perĂodo esperado e regular. Caso vocĂȘ se esqueça o sistema poderĂĄ rodar o script de geração do backup automaticamente. Para isso vocĂȘ pode usar o cron. Veja um exemplo:
Digite ctrontab -e (como root)
Vai abrir um arquivo de texto para vocĂȘ adicionar um evento e definir com que regularidade esse evento ocorrerĂĄ.
Exemplo:
30 11 * * * /usr/local/bin/backup-home.sh
30 20 * * * /usr/local/bin/backup-home.sh
No exemplo acima colocamos o script 'backup-home.sh' para rodar na primeira tentativa 11:30 da manhĂŁ todos os dias e 20:30 todos os dias na segunda tentativa.
EXEMPLO DE SCRIPT DE BACKUP DA HOME/USER
Antes de mostrar o script para vocĂȘs, devo dizer que ele deve ser estudado antes de ser usado. Entenda o script antes de usar. Outra coisa, vai notar que tem '/media/user' e 'user' nele. Ă para mudar para a sua realidade aĂ(exemplo: caminho para a pasta de backup e caminho para a pasta temporĂĄria). Isso tambĂ©m vale para os armazenamentos extras ao final do script. NĂŁo Ă© muito complicado. Basta ler o script e modificar para o que vocĂȘ tem aĂ. Pegue as ideias e ajuste para as suas necessidades.
Vamos ao script:
###############################################
#!/bin/bash
#Script criado por Luke do canal Meu RefĂșgio Nerd
#Não se esqueça de mencionar o autor nas suas modificaçÔes caso queira publicar
#Script para gerar backup compactado da home do usuĂĄrio
#modifique para os pontos de montagem que vocĂȘ vai usar
# Diretório temporårio para a operação
temp_backup_dir="/media/user/armazenamento1/temp-backup-home"
# DiretĂłrio final dos backups
backup_dir="/media/user/armazenamento1/Backup-da-Home"
# Caminho do arquivo de log
log_file="/var/log/backup-home.log"
echo 'ZERANDO ARQUIVO DE LOG'
sleep 3
#zerando arquivo de log
> /var/log/backup-home.log
# Redireciona stdout e stderr para o arquivo de log
exec > >(tee -ia "$log_file")
exec 2>&1
echo 'VERIFICANDO EXISTĂNCIA DE DIRETĂRIOS IMPORTANTES'
sleep 5
# Verifica se o diretĂłrio temporĂĄrio existe
if [ ! -d "$temp_backup_dir" ]; then
# Cria o diretĂłrio temporĂĄrio se nĂŁo existir
mkdir -p "$temp_backup_dir"
else
# Remove conteĂșdo do diretĂłrio temporĂĄrio se existir
rm -rf "$temp_backup_dir"/*
fi
# Verifica se o diretĂłrio de backup principal existe
if [ ! -d "$backup_dir" ]; then
# Cria o diretĂłrio temporĂĄrio se nĂŁo existir
mkdir -p "$backup_dir"
else
ls $backup_dir
fi
echo 'INICIANDO CĂPIA DE ARQUIVOS'
sleep 5
# Realiza a cĂłpia dos arquivos para o diretĂłrio temporĂĄrio
rsync -av --exclude=.cache --exclude=.local/share/Steam --exclude=.local/share/icons /home/user/ "$temp_backup_dir/user"
echo 'CORRIGINDO PERMISSĂES DOS ARQUIVOS COPIADOS'
sleep 5
# Corrija as permissÔes de propriedade
chown -R user:user "$temp_backup_dir"
echo 'INICIANDO A COMPACTAĂĂO DO BACKUP'
sleep 5
# Compacta o backup dentro da pasta Backup-da-Home
tar -cvzf "$backup_dir/backup-home-$(date +%d-%m-%Y).tar.gz" -C "$temp_backup_dir/user/.." "$(basename "user")"
echo 'REMOVENDO BACKUPS ANTIGOS COM MAIS DE 7 DIAS'
sleep 5
# Remove backups antigos dentro da pasta Backup-da-Home
find "$backup_dir" -type f -name "backup-home-*.tar.gz" -mtime +7 -exec rm {} \;
# Log da operação
echo "$(date '+%Y-%m-%d %H:%M:%S') - Backup da home do usuĂĄrio realizado com sucesso" >> "$log_file"
echo 'REMOVENDO ARQUIVOS TEMPORĂRIOS'
sleep 5
# Remove o conteĂșdo do diretĂłrio temporĂĄrio
rm -rf "$temp_backup_dir"
echo 'CRIANDO CĂPIAS ADICIONAIS POR SEGURANĂA'
sleep 5
#criando copias adicionais
#modifique para os pontos de montagem que vocĂȘ vai usar
mkdir /media/user/armazenamento2/Backup-da-Home/
mkdir /media/user/armazenamento3/Backup-da-Home/
mkdir /media/user/armazenamento4/Backup-da-Home/
cp -v -f /media/user/armazenamento1/Backup-da-Home/backup-home-*.tar.gz /media/user/armazenamento2/Backup-da-Home/
cp -v -f /media/user/armazenamento1/Backup-da-Home/backup-home-*.tar.gz /media/user/armazenamento3/Backup-da-Home/
cp -v -f /media/user/armazenamento1/Backup-da-Home/backup-home-*.tar.gz /media/user/armazenamento4/Backup-da-Home/
echo 'OPERAĂĂO DE BACKUP DA HOME/USER FINALIZADO'
#############################################################################
FINALIZANDO
Seria legal aprender somente na observação e não passando por isso. Mas ninguém estå livre de imprevistos. Como dizem os antigos: "um cara precavido vale por dois".
Lembrando que essa Ă© sĂł uma parte. Se quiser fazer backup do sistema tem um tutorial que publiquei aqui no blog. Vou deixar os links mais abaixo para vocĂȘs. Devido a essa experiĂȘncia fiz a restauração totalmente na mĂŁo. EntĂŁo, pode ser que o prĂłximo passo seja criar um script de instalação(leia o post que vou botar mais abaixo para entender) e um de restore para o que tratamos nesse post aqui.
Bom..."melhor prevenir do que remediar". Espero que tenham gostado e que tenha ajudado.
Mencionado nesse post:
https://www.meurefugionerd.com/2023/08/criar-pendrive-bootavel-a-partir-do-sistema-instalado.html
Gostou?
Inscreva-se no meu canal:
Paga um cafezinho para mim?
https://livepix.gg/meurefugionerd
