Piolinux

Scripts Bash para Diversas Finalidades - PioLinux

🚀 Scripts Bash para Diversas Finalidades

O Bash (Bourne-Again Shell) é a linguagem de script padrão na maioria dos terminais Linux. Com ele, você pode automatizar tarefas repetitivas como organizar arquivos, atualizar o sistema, realizar backups e muito mais. Aprender Bash não exige ser um expert — basta curiosidade e prática. Abaixo, veja exemplos úteis de scripts para o dia a dia.

1. O Básico de um Script Bash

Todo script Bash começa com o shebang #!/bin/bash, que indica ao sistema qual interpretador usar.

Exemplo: Olá Mundo!

#!/bin/bash
# Este é um comentário
echo "Olá, PioLinux! Este é o meu primeiro script Bash."

Salve como ola_mundo.sh, dê permissão com chmod +x ola_mundo.sh e execute com ./ola_mundo.sh.

2. Automação de Tarefas Diárias

Atualizar o Sistema Automaticamente:

#!/bin/bash
echo "Atualizando listas de pacotes..."
sudo apt update

echo "Realizando upgrade de pacotes..."
sudo apt upgrade -y

echo "Removendo pacotes desnecessários..."
sudo apt autoremove -y

echo "Limpando o cache de pacotes..."
sudo apt clean

echo "Sistema atualizado e limpo!"

Backup Simples de Pastas Pessoais:

#!/bin/bash
DATA=$(date +%Y-%m-%d_%H-%M-%S)
DIR_BACKUP="$HOME/Backups"
PASTAS_A_COPIAR=("$HOME/Documentos" "$HOME/Imagens")
NOME_ARQUIVO="backup_pessoal_$DATA.tar.gz"

mkdir -p "$DIR_BACKUP"
echo "Iniciando backup das pastas: ${PASTAS_A_COPIAR[@]}"
tar -czvf "$DIR_BACKUP/$NOME_ARQUIVO" "${PASTAS_A_COPIAR[@]}"

echo "Backup concluído! Arquivo: $DIR_BACKUP/$NOME_ARQUIVO"

3. Administração de Sistema

Monitorar Uso de Disco e Enviar Alerta:

#!/bin/bash
LIMITE_PERCENTUAL=80
PARTICAO="/dev/sda1"
EMAIL_ADMIN="seuemail@exemplo.com"

USO=$(df -h "$PARTICAO" | awk 'NR==2 {print $5}' | sed 's/%//g')

if (( USO > LIMITE_PERCENTUAL )); then
    echo "ALERTA: Uso de disco na partição $PARTICAO está em $USO%!" | mail -s "Alerta de Disco" "$EMAIL_ADMIN"
else
    echo "Uso de disco normal: $USO%"
fi

Criar Múltiplos Usuários:

#!/bin/bash
ARQUIVO_USUARIOS="lista_usuarios.txt"

if [ ! -f "$ARQUIVO_USUARIOS" ]; then
    echo "Arquivo $ARQUIVO_USUARIOS não encontrado."
    exit 1
fi

while IFS= read -r USUARIO; do
    if [ -n "$USUARIO" ]; then
        echo "Criando usuário: $USUARIO"
        sudo useradd -m "$USUARIO"
        sudo passwd "$USUARIO"
    fi
done < "$ARQUIVO_USUARIOS"

echo "Usuários criados com sucesso."

Conteúdo de lista_usuarios.txt:

joao
maria
pedro
ana

4. Segurança e Monitoramento

Verificar Portas Abertas:

#!/bin/bash
echo "Listando portas abertas:"
sudo netstat -tulpn

echo -e "\nStatus do firewall (UFW):"
sudo ufw status

Monitorar Tentativas de Login SSH:

#!/bin/bash
ARQUIVO_LOG="/var/log/auth.log"

echo "Tentativas de login SSH falhas:"
grep "Failed password" "$ARQUIVO_LOG" | tail -n 50 | awk '{print $11}' | sort | uniq -c | sort -nr

5. Scripts para Desenvolvimento Web

Servidor HTTP Local com Python:

#!/bin/bash
PORTA=8000
echo "Servidor em http://localhost:$PORTA"
python3 -m http.server $PORTA

Deploy Simples via Rsync/SSH:

#!/bin/bash
DIR_LOCAL="./public_html/"
USUARIO_REMOTO="usuario"
IP_SERVIDOR="192.168.0.1"
DIR_REMOTO="/var/www/html/"

rsync -avz --delete "$DIR_LOCAL" "$USUARIO_REMOTO@$IP_SERVIDOR:$DIR_REMOTO"

if [ $? -eq 0 ]; then
    echo "Deploy realizado com sucesso!"
else
    echo "Erro no deploy."
fi

6. Utilidades e Truques Avançados

Calculadora via Terminal:

#!/bin/bash
if [ -z "$1" ]; then
    echo "Uso: ./calculadora.sh \"10 + 5 * 2\""
    exit 1
fi

RESULTADO=$(echo "scale=2; $1" | bc -l)
echo "Resultado: $RESULTADO"

Gerar Álbum de Fotos HTML:

#!/bin/bash
DIR_FOTOS="./fotos"
ARQUIVO_HTML="album.html"

echo "" > "$ARQUIVO_HTML"
echo "Álbum" >> "$ARQUIVO_HTML"
echo "

Minhas Fotos

" >> "$ARQUIVO_HTML" for FOTO in "$DIR_FOTOS"/*.{jpg,png,gif}; do if [ -f "$FOTO" ]; then NOME=$(basename "$FOTO") echo "

\"$NOME\"
$NOME

" >> "$ARQUIVO_HTML" fi done echo "" >> "$ARQUIVO_HTML" echo "Álbum gerado em $ARQUIVO_HTML"

Esses scripts são apenas o começo. Com Bash, você pode criar ferramentas personalizadas, automatizar rotinas e entender melhor como o Linux funciona. Experimente, edite e adapte conforme suas necessidades!