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
" >> "$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!