Shell Scripting - Parte 2 (Casos Prácticos)
Nivel Básico
1. Contar líneas de un log
Ejercicio: Cuenta cuántas líneas tiene un archivo log.
Mostrar solución
bash
#!/bin/bash
wc -l archivo.log2. Buscar errores en logs
Ejercicio: Muestra las líneas que contienen "ERROR".
Mostrar solución
bash
#!/bin/bash
grep "ERROR" archivo.log3. Copia de seguridad simple
Ejercicio: Copia un archivo a una carpeta backup.
Mostrar solución
bash
#!/bin/bash
cp archivo.txt backup/Nivel Intermedio
4. Backup con fecha
Ejercicio: Guarda una copia con fecha.
Mostrar solución
bash
#!/bin/bash
fecha=$(date +%Y-%m-%d)
cp archivo.txt backup/archivo_$fecha.txt5. Monitor de uso de disco
Ejercicio: Muestra el uso del disco.
Mostrar solución
bash
#!/bin/bash
df -h6. Automatizar limpieza de logs
Ejercicio: Borra logs mayores a 7 días.
Mostrar solución
bash
#!/bin/bash
find /ruta/logs -name "*.log" -mtime +7 -deleteNivel Práctico Profesional
7. Script de backup completo
Ejercicio: Comprime un directorio como backup.
Mostrar solución
bash
#!/bin/bash
tar -czf backup.tar.gz /ruta/directorio8. Monitor de procesos
Ejercicio: Verifica si un proceso está activo.
Mostrar solución
bash
#!/bin/bash
if pgrep nginx > /dev/null
then
echo "Nginx activo"
else
echo "Nginx no está corriendo"
fi9. Alerta por uso de CPU
Ejercicio: Muestra alerta si CPU > 80%.
Mostrar solución
bash
#!/bin/bash
uso=$(top -bn1 | grep "Cpu" | awk '{print $2}' | cut -d. -f1)
if [ $uso -gt 80 ]; then
echo "Alerta: CPU alta"
fi10. Pipeline de logs
Ejercicio: Filtra errores y cuenta ocurrencias.
Mostrar solución
bash
#!/bin/bash
grep "ERROR" archivo.log | wc -l