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

[Sugestão] Atividade 5 - Minha solução

Boa noite!

Criei a shell abaixo, que recebe como input o diretório a ser backupado e o diretório onde guardar o BKP.
Caso o diretório onde guardar o BKP não existe, o diretório é criado.
O nome do arquivo de backup contem todo o caminho do diretório original, substituendo " / " com " _ ".

#! /bin/bash

read -p 'BKP de qual diretório? ' caminho
read -p 'Onde guardar o BKP? ' bkp

data=$(date +"%Y%m%d_%H%M%S")
name=$(echo "$caminho" | tr '\/' '_')

if [ ! -d "$caminho" ]; then
   echo "Diretório $caminho não existe"
   exit 1
fi

if [ ! -d "$bkp" ]; then
   mkdir "$bkp"
   echo "Diretorio de BKP $bkp criado"
fi

tar -czf "$bkp"/BKP_"$name"_"$data".tar.gz "$caminho"

Exemplo de execução (é possível ver que apenas durante a primeira execução é criada a pasta que contem os backups)

root@DESKTOP-JHEH44T:~/devops# cd 04.07.Prática/
root@DESKTOP-JHEH44T:~/devops/04.07.Prática# ./05.BKP_gzip.sh
BKP de qual diretório? /root/devops/03.08.Prática
Onde guardar o BKP? /root/devops/BKP
Diretorio de BKP /root/devops/BKP criado
tar: Removing leading `/' from member names
root@DESKTOP-JHEH44T:~/devops/04.07.Prática# ./05.BKP_gzip.sh
BKP de qual diretório? /root/devops/03.08.Prática20260313_230010
Onde guardar o BKP? /root/devops/BKP
tar: Removing leading `/' from member names
root@DESKTOP-JHEH44T:~/devops/04.07.Prática# cd /root/devops/BKP
root@DESKTOP-JHEH44T:~/devops/BKP# ls -ltr
total 8
-rw-r--r-- 1 root root 710 Mar 15 23:56 BKP__root_devops_03.08.Prática_20260315_235636.tar.gz
-rw-r--r-- 1 root root 348 Mar 15 23:57 BKP__root_devops_03.08.Prática20260313_230010_20260315_235739.tar.gz

Onde 03.08.Prática e 03.08.Prática20260313_230010 são dois diretórios localizados na pasta devops

1 resposta
solução!

Oi, Agostino! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

A sua solução ficou bem estruturada. Chamou atenção o cuidado em validar se o diretório existe antes de gerar o backup e também a criação automática da pasta de destino. Outro ponto interessante é o uso do comando tr para substituir / por _ no nome do arquivo, garantindo um nome seguro para o backup.

Continue firme nos estudos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!