Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] Seria um erro?

Ao tentar fazer o backup com o código da aula, dava certo porém o programa encerrava com um erro! E mesmo que tudo ocorra como esperado, nunca é confortável aos olhos do programador quando algum programa se encerra com um erro ou warning; acabei percebendo que na linha de criação do arquivo compactado:

tar -czf "$nome_arquivo" "diretorio_backup"

O "diretorio_backup" que se refere ao diretório na /home/user/devops está sem o cifrão, e por isso me gerava o seguinte erro:

tar: diretorio_backup: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors

E após adicionar o cifrão dessa forma:

tar -czf "$nome_arquivo" "$diretorio_backup"

O código encerra sem erro algum.

1 resposta
solução!

Oi João!

Entendi sua situação e você está correto. Quando você usa variáveis no shell script, elas precisam ser precedidas pelo cifrão $ para que o shell possa substituí-las pelos valores que elas representam.

No seu caso, a linha original:

tar -czf "$nome_arquivo" "diretorio_backup"

estava tentando encontrar um diretório literalmente chamado "diretorio_backup", o que não existia, resultando no erro:

tar: diretorio_backup: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors

Ao corrigir a linha para:

tar -czf "$nome_arquivo" "$diretorio_backup"

Você está dizendo ao shell para substituir $diretorio_backup pelo valor real da variável, que no seu caso é /home/user/devops. Isso resolve o problema de referência ao diretório e o comando tar consegue encontrar o diretório correto para criar o arquivo compactado.

Ótima observação e correção! É sempre bom verificar se todas as variáveis estão corretamente referenciadas no script para evitar esses tipos de erros.

Bons estudos!