borg_restore_pasta_corrente.shO script borg_restore_pasta_corrente.sh automatiza a restauração de backups da pasta corrente (diretório atual) criados com o BorgBackup, utilizando o script base borg_restore.sh.
Ele identifica automaticamente o repositório Borg correspondente à pasta em questão e restaura os arquivos de backup diretamente dentro de uma subpasta chamada restaurado.
Este script é ideal para usuários domésticos ou técnicos que desejam restaurar uma pasta de backup de forma rápida, interativa e segura — sem precisar digitar comandos longos do Borg manualmente.
borg_restore.sh.restaurado/ para armazenar os arquivos restaurados.O script não requer parâmetros externos.
Todas as variáveis são configuradas automaticamente com base no diretório atual.
| Variável | Descrição | Exemplo |
|---|---|---|
SCRIPT_BASE |
Caminho absoluto para o script base de restauração | /home/paulosspacheco/scripts/borg_restore.sh |
DESTINO_BASE |
Caminho base onde os repositórios Borg estão armazenados | /media/paulosspacheco/Novo volume/borg_backup |
CRIPTO |
Tipo de criptografia (padrão: none) |
none |
ORIGEM |
Diretório atual (pwd) |
/home/paulosspacheco/scripts |
NOME |
Nome da pasta corrente (basename) | scripts |
REPO |
Caminho completo para o repositório Borg correspondente | /media/paulosspacheco/Novo volume/borg_backup/scripts/borg-repo |
DESTINO_RESTAURACAO |
Caminho de destino onde os arquivos serão restaurados | /home/paulosspacheco/scripts/restaurado |
cd ~/scripts
./borg_restore_pasta_corrente.sh
Saída esperada:
======================================================
♻️ Restauração da pasta corrente com BorgBackup
======================================================
Nome ...........: scripts
Repositório ....: /media/paulosspacheco/Novo volume/borg_backup/scripts/borg-repo
Destino final ..: /home/paulosspacheco/scripts/restaurado
Script base ....: /home/paulosspacheco/scripts/borg_restore.sh
Criptografia ...: none
======================================================
Deseja restaurar a pasta 'scripts' para '/home/paulosspacheco/scripts/restaurado'? (s/n): s
Apresenta um resumo das configurações detectadas automaticamente:
echo "Nome ...........: $NOME"
echo "Repositório ....: $REPO"
echo "Destino final ..: $DESTINO_RESTAURACAO"
echo "Script base ....: $SCRIPT_BASE"
echo "Criptografia ...: $CRIPTO"
Antes da execução, o script garante que tudo está correto:
Verifica se o script base existe e é executável:
if [ ! -x "$SCRIPT_BASE" ]; then
echo "❌ O script base '$SCRIPT_BASE' não foi encontrado ou não tem permissão de execução."
exit 1
fi
Verifica se o repositório Borg existe:
if [ ! -d "$REPO" ]; then
echo "❌ O repositório '$REPO' não foi encontrado!"
exit 1
fi
Cria o diretório de restauração caso não exista:
mkdir -p "$DESTINO_RESTAURACAO"
Antes de prosseguir, o script confirma a intenção de restauração:
read -p "Deseja restaurar a pasta '$NOME' para '$DESTINO_RESTAURACAO'? (s/n): " CONFIRMA
Se o usuário responder n, a operação é cancelada imediatamente.
A restauração é feita chamando o script base (borg_restore.sh) com os parâmetros adequados:
"$SCRIPT_BASE" "$REPO" "$DESTINO_RESTAURACAO" "" "$CRIPTO"
Isso inicia o fluxo completo de restauração, incluindo:
Após a execução, o script exibe o status final com base no código de retorno:
if [ $? -eq 0 ]; then
echo "✅ Restauração da pasta '$NOME' concluída com sucesso!"
echo "Arquivos restaurados em: $DESTINO_RESTAURACAO"
else
echo "❌ Ocorreu um erro durante a restauração."
fi
Após a execução bem-sucedida, a estrutura final será semelhante a:
/home/paulosspacheco/scripts/
├── borg_restore_pasta_corrente.sh
├── borg_restore.sh
├── borg_backup.sh
├── ...
└── restaurado/
├── borg_backup_pasta_corrente.sh
├── borg_backup.sh
├── borg_restore.sh
└── outros arquivos do backup
| Dependência | Descrição |
|---|---|
| borgbackup | Ferramenta principal de backup e restauração |
| bash (5.x) | Shell de execução |
| borg_restore.sh | Script base obrigatório |
| Acesso ao repositório | O caminho /media/paulosspacheco/Novo volume/borg_backup deve estar montado |
======================================================
♻️ Restauração da pasta corrente com BorgBackup
======================================================
Nome ...........: scripts
Repositório ....: /media/paulosspacheco/Novo volume/borg_backup/scripts/borg-repo
Destino final ..: /home/paulosspacheco/scripts/restaurado
Script base ....: /home/paulosspacheco/scripts/borg_restore.sh
Criptografia ...: none
======================================================
Deseja restaurar a pasta 'scripts' para '/home/paulosspacheco/scripts/restaurado'? (s/n): s
======================================================
🚀 Iniciando restauração com borg_restore.sh ...
======================================================
======================================================
♻️ Restaurador genérico de backups BorgBackup
======================================================
Repositório ....: /media/paulosspacheco/Novo volume/borg_backup/scripts/borg-repo
Destino ........: /home/paulosspacheco/scripts/restaurado
Snapshot .......: backup-2025-10-30
Criptografia ...: none
======================================================
🧪 Etapa 1: Simulação (dry-run)
borg_backup.sh
borg_restore.sh
...
✅ Restauração concluída com sucesso!
Arquivos restaurados em: /home/paulosspacheco/scripts/restaurado
Monte o disco externo antes da restauração:
mount | grep "Novo volume"
Não execute dentro da pasta restaurado/, para evitar sobrescrita.
Confirme o snapshot correto durante o processo.
Evite restaurar diretamente sobre o diretório original sem revisar a simulação (dry-run).
Mantenha o script base sincronizado com a versão testada (borg_restore.sh).
📘 Site oficial do BorgBackup: https://www.borgbackup.org/
📖 Documentação completa: https://borgbackup.readthedocs.io/en/stable/
💬 Comunidade e suporte: https://github.com/borgbackup/borg/discussions
| Versão | Data | Alterações |
|---|---|---|
| 1.0 | 2025-10-30 | Versão inicial funcional |
| 1.1 | 2025-10-31 | Integração com script base e criação automática da pasta de restauração |
Paulo SSPacheco 💻 Automação e Infraestrutura Linux 📅 Outubro de 2025