Criação de Contas de Usuário e Senhas Utilizando Parâmetros Posicionais
useradd "$nome_usuario"
echo "$senha_usuario" | passwd --stdin "$nome_usuario"
}
</div>Backup Automático de Arquivos de Log com Tar
--------------------------------------------
Script para backup semanal (todas as sextas-feiras) dos arquivos de log em /var/log:
<div>```
#!/bin/bash
# Script de backup com timestamp no nome do arquivo
# Evita sobrescrita de backups anteriores
data_atual=$(date +%Y%m%d)
tar -czf backup_logs_${data_atual}.tar.gz /var/log
instalar_servicos() { yum -y install httpd yum -y install mariadb mariadb-devel mariadb-server yum -y install php php-mysql }
iniciar_servicos() { systemctl start httpd mariadb systemctl enable httpd mariadb }
instalar_servicos iniciar_servicos
</div>Monitoramento de Recursos do Sistema
------------------------------------
Script que monitora memória e espaço em disco, alertando quando abaixo dos limites:
<div>```
#!/bin/bash
verificar_recursos() {
# Espaço disponível na partição raiz (em KB)
espaco_disco=$(df / | awk 'NR==2 {print $4}')
# Memória disponível (em KB)
memoria_disp=$(free | awk 'NR==2 {print $7}')
# Limites configurados: 500MB para memória, 1GB para disco
limite_memoria=512000
limite_disco=1024000
while true; do
if [[ $espaco_disco -le $limite_disco ]] || [[ $memoria_disp -le $limite_memoria ]]; then
mail -s "ALERTA DE SISTEMA" root << EOL
Aviso crítico: Recursos insuficientes detectados!
Espaço em disco: ${espaco_disco}KB
Memória disponível: ${memoria_disp}KB
EOL
fi
sleep 60 # Verifica a cada minuto
done
}
verificar_recursos
adivinhar_numero() { while true; do read -p "Tente adivinhar um número entre 1 e 100: " tentativa
if [[ $tentativa -eq $numero_secreto ]]; then
echo "Parabéns! Você acertou o número!"
break
elif [[ $tentativa -gt $numero_secreto ]]; then
echo "Seu palpite é muito alto!"
else
echo "Seu palpite é muito baixo!"
fi
done
}
adivinhar_numero
</div>Verificação de Privilégios de Administrador
-------------------------------------------
<div>```
#!/bin/bash
# Verifica se usuário atual é root (UID = 0)
verificar_permissao() {
if [[ $EUID -eq 0 ]]; then
echo "Instalando vsftpd..."
yum -y install vsftpd
else
echo "Erro: Permissão insuficiente para instalar software."
exit 1
fi
}
verificar_permissao
configurar_usuario() { read -p "Nome de usuário: " usuario_nome
# Verifica se nome foi fornecido
if [[ -z "$usuario_nome" ]]; then
echo "Erro: Nome de usuário obrigatório!"
exit 2
fi
# Lê senha com eco desativado
stty -echo
read -p "Senha (padrão 123456): " senha_digitada
stty echo
# Usa senha padrão se nenhuma for digitada
senha_final="${senha_digitada:-123456}"
# Cria conta e define senha
useradd "$usuario_nome"
echo "$senha_final" | passwd --stdin "$usuario_nome"
echo "Usuário $usuario_nome criado com sucesso!"
}
configurar_usuario
</div>Ordenação de Três Números Inteiros
----------------------------------
<div>```
#!/bin/bash
# Lê três números inteiros e os ordena
ler_numeros() {
read -p "Primeiro número: " valor1
read -p "Segundo número: " valor2
read -p "Terceiro número: " valor3
}
ordenar_valores() {
# Algoritmo de ordenação para três valores
# valor_min sempre terá o menor valor
# valor_max sempre terá o maior valor
# valor_med terá o valor intermediário
if [[ $valor1 -gt $valor2 ]]; then
temp_swap=$valor1
valor1=$valor2
valor2=$temp_swap
fi
if [[ $valor1 -gt $valor3 ]]; then
temp_swap=$valor1
valor1=$valor3
valor3=$temp_swap
fi
if [[ $valor2 -gt $valor3 ]]; then
temp_swap=$valor2
valor2=$valor3
valor3=$temp_swap
fi
echo "Números ordenados: $valor1, $valor2, $valor3"
}
ler_numeros
ordenar_valores
varredura_rede() { local rede_base="192.168.3"
for host in {1..254}; do
endereco_ip="${rede_base}.${host}"
if ping -c 2 -W 1 "$endereco_ip" &>/dev/null; then
echo "$endereco_ip está ONLINE"
else
echo "$endereco_ip está OFFLINE"
fi
done
}
varredura_rede
</div>Barra de Progresso para Cópias
------------------------------
<div>```
#!/bin/bash
# Mostra barra de progresso durante cópia de arquivos
exibir_progresso() {
while true; do
echo -n "#"
sleep 0.3
done
}
# Inicia barra de progresso em background
exibir_progresso &
pid_barra=$!
# Executa cópia
cp -r "$1" "$2"
# Finaliza barra de progresso
kill $pid_barra
echo -e "\nCópia concluída!"
gerar_tabela() { for ((linha=1; linha<=9; linha++)); do for ((coluna=1; coluna<=linha; coluna++)); do resultado=$((linha * coluna)) echo -n "${coluna}x${linha}=${resultado} " done echo "" done }
gerar_tabela
</div>Monitoramento em Tempo Real de Tráfego de Rede
----------------------------------------------
Script para exibição contínua do tráfego da interface eth0:
<div>```
#!/bin/bash
# Monitoramento contínuo de pacotes enviados pela interface eth0
monitorar_interface() {
while true; do
# Lê estatísticas de tráfego da interface
fluxo_saida=$(cat /proc/net/dev | grep eth0 | awk '{print $10}')
echo "Pacotes enviados por eth0: $fluxo_saida"
sleep 2
done
}
monitorar_interface