Scripts Bash por Categoria — Referência Técnica

⚠️ AVISO DE SEGURANÇA: Estes scripts são fornecidos como referência técnica. Sempre revise o código antes de executar. Scripts com sudo, acesso a /var/log ou manipulação de disco exigem compreensão total do sistema. Execute apenas em ambientes controlados.

Fundamentos de Script Bash.

[Objetivo] [Script] [Copiar]
Verificar status do sistema
#!/bin/bash
# Mostra carga média, uso de memória e partições críticas.
echo "Carga: $(uptime | awk -F'load average:' '{print $2}')"
echo "Memória: $(free -m | awk 'NR==2{printf "%.0f%%\n", $3*100/$2}')"
df -h / /home 2>/dev/null | grep -v Filesystem

Automação de Tarefas.

[Objetivo] [Script] [Copiar]
Atualizar sistema [Devuan]
#!/bin/bash
# Atualiza pacotes, remove órfãos e limpa cache.
sudo apt update && \
sudo apt upgrade -y && \
sudo apt autoremove -y && \
sudo apt clean
echo "Sistema atualizado com segurança."
Backup de pastas pessoais
#!/bin/bash
# Backup incremental de diretórios críticos com timestamp.
data=$(date +%Y-%m-%d_%H-%M-%S)
dir_backup="$HOME/backups"
pastas=("$HOME/Documentos" "$HOME/Imagens")
arquivo="backup_$data.tar.gz"

mkdir -p "$dir_backup"
tar -czf "$dir_backup/$arquivo" "${pastas[@]}" && \
echo "Backup salvo em: $dir_backup/$arquivo"

Administração de Sistema.

[Objetivo] [Script] [Copiar]
Alerta de disco cheio
#!/bin/bash
# Alerta se partição raiz ultrapassar 80% de uso.
uso=$(df / | awk 'NR==2 {print $5}' | tr -d '%')
if [ "$uso" -gt 80 ]; then
  echo "⚠️ Disco / acima de 80% ($uso%)"
fi
Criar usuários em lote
#!/bin/bash
# Cria usuários a partir de lista (um por linha).
[ ! -f lista_usuarios.txt ] && { echo "Erro: lista_usuarios.txt não encontrado"; exit 1; }
while IFS= read -r user; do
  [ -n "$user" ] && sudo useradd -m -s /bin/bash "$user"
done < lista_usuarios.txt
echo "Usuários criados com shell padrão."

Segurança e Monitoramento.

[Objetivo] [Script] [Copiar]
Listar portas abertas
#!/bin/bash
# Mostra todas as portas TCP/UDP em escuta.
echo "Portas abertas:"
ss -tuln | tail -n +2
Monitorar logins SSH falhos
#!/bin/bash
# Lista IPs com mais tentativas falhas de login SSH.
echo "Top 5 IPs com falhas:"
grep "Failed password" /var/log/auth.log 2>/dev/null | \
awk '{print $11}' | sort | uniq -c | sort -nr | head -5

Desenvolvimento Web.

[Objetivo] [Script] [Copiar]
Servidor HTTP local
#!/bin/bash
# Inicia servidor HTTP simples na porta 8000.
python3 -m http.server 8000 --bind 127.0.0.1
Deploy com rsync
#!/bin/bash
# Sincroniza diretório local com servidor remoto.
rsync -avz --delete --progress ./public/ user@host:/var/www/html/ && \
echo "Deploy concluído com verificação."

Calculadora.

[Objetivo] [Script] [Copiar]
Calculadora no terminal
#!/bin/bash
# Calculadora com precisão decimal via bc.
if [ -z "$1" ]; then
  echo "Uso: $0 '2 + 3 * 4'"
  exit 1
fi
echo "scale=2; $*" | bc -l