Como tá demorando e > 5k chars, resolvi postar o que já consegui até aqui.
Script
#!/bin/bash
###########################
# Nome: automatizacao-um
# Descrição: Script de automatização
# básica no Ubuntu Serve
# Autor: Naygno B. Noia
# Data: 12/11/2025
###########################
p=0 # Controla se é a primeira vez no menu
while true; do
echo
echo "========= Automações Básicas (I) ========="
echo " Opções:"
echo " 1) Atualizar os pacotes do Sistema"
echo " 2) Renomear os arquivos"
echo " 3) Criar novo usuário"
echo " 4) Monitorar disco"
echo " 5) Fazer backup"
echo " 6) Sair"
echo "=========================================="
echo
if [[ $p -eq 0 ]]; then
read -e -p "Escolha uma opção [1-6]: " opcao
else
read -e -p "Escolha outra opção [1-6]: " opcao
fi
if [[ "$opcao" =~ ^[a-zA-Z07-9_-]+$ ]]; then
echo "Esta instrução não é uma opção válida."
echo "So long, thanks for all the fish!"
break
else
case $opcao in
'1' )
echo "Esta opção irá atualizar todos os pacotes do sistema."
read -e -p "Para prosseguir digite (S)im ou (N)ão: " atualizar
case "$atualizar" in
'S'|'s'|'sim'|'Sim' )
retorno=$(id -u)
if [[ $retorno -eq 0 ]]; then
p=1
# SUBMENU COMPLETO DE ATUALIZAÇÃO NO GITHUB
echo "Sistema de atualização completo disponível no GitHub"
echo "Inclui: apt update, apt upgrade, apt autoremove"
else
echo "Você não tem permissão para esta operação."
fi
;;
*) echo "Voltando ao menu..."; continue ;;
esac
;;
'2' )
echo "Esta opção renomeia arquivos com prefixo ou sufixo."
read -e -p "Para prosseguir digite (S)im ou (N)ão: " renomear
case "$renomear" in
'S'|'s'|'sim'|'Sim' )
p=1
read -e -p "Digite (P)refixo ou (S)ufixo: " pOUs
case "$pOUs" in
'P'|'p' )
read -e -p "Diretório de origem: " diretorio
read -e -p "Prefixo: " prefixo
ls "$diretorio" > /dev/null 2>&1
if [[ $? -eq 0 ]]; then
i=1
for arquivo in "$diretorio"/*; do
if [[ ! "${arquivo%.*}" == "${arquivo##*.}" ]]; then
if [[ -f "$arquivo" && ! -x "$arquivo" ]]; then
mv "$arquivo" "$diretorio/${prefixo}_$i.${arquivo##*.}"
i=$((i+1))
fi
fi
done
# VERIFICAÇÃO DE SUCESSO COMPLETA NO GITHUB
echo "Operação de prefixo concluída!"
fi
;;
'S'|'s' )
read -e -p "Diretório dos arquivos: " diretorio
read -e -p "Sufixo: " sufixo
ls "$diretorio" > /dev/null 2>&1
if [[ $? -eq 0 ]]; then
k=0; l=0
# LÓGICA COMPLETA DE SUFIXO NO GITHUB
for arquivo in "$diretorio"/*; do
if [[ ! "${arquivo%.*}" == "${arquivo##*.}" ]]; then
k=$((k+1))
if [[ "${arquivo##*.}" != "$sufixo" ]]; then
mv "$arquivo" "${arquivo%.*}.$sufixo"
fi
fi
done
# SISTEMA DE VERIFICAÇÃO AVANÇADO NO GITHUB
echo "Operação de sufixo concluída!"
fi
;;
*) echo "Opção inválida!"; break ;;
esac
;;
*) echo "Voltando ao menu..."; continue ;;
esac
;;
'3' )
echo "Esta opção cria um novo usuário no sistema."
read -e -p "Para prosseguir digite (S)im ou (N)ão: " criar
case "$criar" in
'S'|'s'|'sim'|'Sim' )
if [[ $(id -u) -eq 0 ]]; then
# LÓGICA DE CRIAÇÃO DE USUÁRIO NO GITHUB
echo "Sistema de criação de usuários em desenvolvimento"
echo "Detalhes completos no GitHub"
else
echo "Execute com sudo para criar usuários."
fi
;;
*) echo "Voltando ao menu..."; continue ;;
esac
;;
'4' )
echo "Monitoramento de disco - Em breve!"
;;
'5' )
echo "Sistema de backup - Em desenvolvimento!"
;;
'6' )
echo "Encerrando o script..."
exit 1
;;
* )
echo "Instrução inválida."
break
;;
esac
fi
done
Status das Funcionalidades
Completas e Estáveis
- Opção 1: Sistema completo de atualização de pacotes com submenu
- Opção 2: Renomeação com prefixo e sufixo totalmente funcionais
- Validações: Menu interativo, verificações de privilégio, tratamento de erros
Implementadas com Proteções
- Verificação de extensão de arquivos
- Proteção contra auto-renomeação do script
- Sistema de contagem para verificação de sucesso
- Detecção de renomeação parcial vs completa
Em Desenvolvimento
- Opção 3: Criação de usuários (base implementada)
- Opção 4: Monitoramento de disco
- Opção 5: Backup com compactação
Código completo e detalhes de implementação:
Script no meu GtHub
Pelo menos a interface tá pronta.