Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro na Variavel diretorio_backup

Eu estava com problemas na execução do script, mais especificamente na variável diretorio_backup , o script da aula é este, conforme a transcrição:

diretorio_backup="/home/tarsis/devops"
nome_arquivo="backup_$(date +%Y%m%d_%H%M%S).tar.gz
tar -czf "$nome_arquivo" "diretorio_backup"
echo "Backup concluído em $nome_arquivo"

Porém eu estava obtendo o seguinte erro:

bkp.sh: line 2: diretorio_backup: command not found                                            
bkp.sh: line 3: nome_arquivo: command not found                                            
tar: diretorio_backup: Cannot stat: No such file or directory                                  
tar (child): : Cannot open: No such file or directory                                       
tar (child): Error is not recoverable: exiting now                                          
tar: Child returned status 2                                                                
tar: Error is not recoverable: exiting now                                                  
Backup concluido em                          

Eu resolvi o problema quando coloquei o $ na variável diretorio_backup, nesta linha:

tar -czf "$nome_arquivo" "$diretorio_backup"

Com isso funcionou normalmente, mais alguém teve este problema?

2 respostas
solução!

Olá, Társis! Tudo bem?

Você está correto. Quando usamos variáveis em um script Bash, precisamos precedê-las com um cifrão ($) para referenciar seu valor.

O Bash interpreta "diretorio_backup" como uma string literal, não como uma variável, por isso, o comando tar estava tentando compactar um diretório chamado "diretorio_backup", que não existe, resultando no erro que você estava vendo.

Parabéns por ter resolvido isso por conta própria! Isso demonstra que você está realmente entendendo o conteúdo.

Bons estudos!

Boa tarde pessoal,

Isso mesmo, no código disponível para copiar linha 2 falta a "aspas" para fechar o valor da variável "nome_arquivo", e na linha 3 falta o "sifrão" para especificar o nome da variável onde está o diretório.

Meu código que rodou certinho ficou assim:

diretorio_backup="/home/welintonwso/devops" nome_arquivo="backup_$(date +%Y%m%d_%H%M%S).tar.gz" tar -czf "$nome_arquivo" "$diretorio_backup" echo "Backup concluido em $nome_arquivo"

Também usei o seguinte comando para validar se o arquivo compactdo gerado realmente possuia o conteudo do diretório:

tar -tzvf backup_20240303_210436.tar.gz