1
resposta

[Projeto] Hora da prática

Atividades

  1. Elabore um script que automatiza a atualização de pacotes do sistema operacional.
#!/bin/bash

echo "Atualizando lista de pacotes..."
sudo apt update

echo "Atualizando pacotes instalados..."
sudo apt upgrade -y

echo "Atualização concluída!"

Executando:

jezebel@Linux:~$ nano
jezebel@Linux:~$ chmod +x atualizar_sistema.sh
jezebel@Linux:~$ ./atualizar_sistema.sh
Atualizando lista de pacotes...
  1. Crie um script que renomeie todos os arquivos em um diretório, adicionando um prefixo ou sufixo especificado.
#!/bin/bash

read -p "Digite o diretório dos arquivos: " dir
read -p "Digite o texto desejado (prefixo ou sufixo): " texto
read -p "Você quer adicionar como (p)refixo ou (s)ufixo? " tipo

cd "$dir" || { echo "Diretório inválido!"; exit 1; }

for arq in *; do
    if [ "$tipo" = "p" ]; then
        mv "$arq" "${texto}_${arq}"
    else
        # separa nome e extensão
        nome="${arq%.*}"
        ext="${arq##*.}"

        if [ "$nome" = "$ext" ]; then
            # arquivo sem extensão
            mv "$arq" "${nome}_${texto}"
        else
            mv "$arq" "${nome}_${texto}.${ext}"
        fi
    fi
done

echo "Arquivos renomeados com sucesso!"

Executando:

jezebel@Linux:~$ nano
jezebel@Linux:~$ chmod +x renomear_arquivos.sh
jezebel@Linux:~$ mkdir teste
jezebel@Linux:~$ cd teste
jezebel@Linux:~/teste$ touch a.txt b.txt c.txt
jezebel@Linux:~/teste$ ls
a.txt  b.txt  c.txt
jezebel@Linux:~/teste$ cd ..
jezebel@Linux:~$ ./renomear_arquivos.sh
Digite o diretório dos arquivos: /home/jezebel/teste
Digite o texto desejado (prefixo ou sufixo): novo
Você quer adicionar como (p)refixo ou (s)ufixo? s
Arquivos renomeados com sucesso!
jezebel@Linux:~$ cd teste
jezebel@Linux:~/teste$ ls
a_novo.txt  b_novo.txt  c_novo.txt
  1. Desenvolva um script que automatiza a criação de usuários no sistema, solicitando ao usuário que forneça o nome e outros detalhes necessários.
#!/bin/bash

read -p "Digite o nome do novo usuário: " usuario

sudo useradd -m "$usuario"

echo "Usuário criado: $usuario"
echo "Definindo senha..."
sudo passwd "$usuario"

Executando:

jezebel@Linux:~$ nano
jezebel@Linux:~$ chmod +x criar_usuario.sh
jezebel@Linux:~$ ./criar_usuario.sh
Digite o nome do novo usuário: Jezebel
[sudo] password for jezebel:
Usuário criado: Jezebel
Definindo senha...
New password:
Retype new password:
  1. Construa um script para monitorar o espaço em disco usando o comando df na coleta de informações.
#!/bin/bash

limite=90

# Coleta os dados da partição raiz "/"
linha=$(df -h / | awk 'NR==2')

total=$(echo "$linha" | awk '{print $2}')
usado=$(echo "$linha" | awk '{print $3}')
disponivel=$(echo "$linha" | awk '{print $4}')
porcentagem=$(echo "$linha" | awk '{print $5}' | sed 's/%//')

echo "===== Monitoramento de Disco ====="
echo "Total:        $total"
echo "Usado:        $usado"
echo "Disponível:   $disponivel"
echo "Uso (%):      $porcentagem%"
echo "=================================="

# Verificação do limite
if [ $porcentagem -gt $limite ]; then
    echo "Alerta: Uso do disco excedeu $limite%!"
else
    echo "O uso do disco está dentro do limite."
fi

Executando:

jezebel@Linux:~$ nano
jezebel@Linux:~$ chmod +x monitorar_disco.sh
jezebel@Linux:~$ ./monitorar_disco.sh
===== Monitoramento de Disco =====
Total:        25G
Usado:        3.7G
Disponível:   20G
Uso (%):      16%
==================================
O uso do disco está dentro do limite.
  1. Escreva um script para automatizar o backup de um diretório específico para um local de destino, utilizando a compressão gzip.
#!/bin/bash

read -p "Digite o diretório que deseja fazer backup: " origem
read -p "Digite o destino do backup: " destino

data=$(date +%Y-%m-%d_%H-%M)
arquivo="backup_$data.tar.gz"

tar -czf "$destino/$arquivo" "$origem"

echo "Backup concluído!"
echo "Arquivo criado: $destino/$arquivo"

Executando:

jezebel@Linux:~$ nano
jezebel@Linux:~$ chmod +x backup_gzip.sh
jezebel@Linux:~$ ./backup_gzip.sh
Digite o diretório que deseja fazer backup: /home/jezebel/devops
Digite o destino do backup: /home/jezebel
tar: Removing leading `/' from member names
Backup concluído!
Arquivo criado: /home/jezebel/backup_2025-11-15_11-29.tar.gz

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Olá! Como vai?

Achei muito interessante a forma como os scripts foram organizados e testados!

Sua resposta mostra domínio na automação de tarefas administrativas com Bash, você utilizou muito bem estruturas de controle e comandos do sistema para tornar os scripts funcionais e ainda compreendeu a importância da interação com o usuário para tornar os scripts mais dinâmicos e reutilizáveis.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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