Si trabajas en soporte técnico, administración de sistemas o simplemente eres el "amigo que sabe de computadoras", habrás notado que hay tareas que se repiten más que el estribillo de una canción de verano. Revisar el espacio en disco, hacer copias de seguridad, limpiar archivos temporales... son tareas nobles, pero aburridas.

Aquí es donde entra Bash. Bash (Bourne Again SHell) no es solo una interfaz de comandos; es tu asistente personal que no duerme, no se queja y no comete errores de dedo si el script está bien escrito. En este artículo, vamos a desglosar los scripts esenciales que transformarán tu flujo de trabajo de "manual y lento" a "automático y profesional".


¿Por qué Bash? (Incluso si no eres programador)

Antes de entrar en el código, hablemos claro: El tiempo es el recurso más caro de un técnico.

Un script de Bash es, básicamente, una lista de instrucciones que le das al sistema operativo Linux (o macOS) para que las ejecute de golpe. Para un no-técnico, esto puede parecer "hackeo", pero en realidad es solo eficiencia pura.

Ventajas de usar scripts:

  • Consistencia: El script siempre hará lo mismo. No se olvidará de borrar la caché de /var/tmp.
  • Portabilidad: Un archivo .sh pesa unos pocos kilobytes y puedes llevarlo en un USB a cualquier servidor.
  • Documentación: El script es, en sí mismo, el manual de cómo se hace una tarea.

Los Primeros Pasos: ¿Cómo se crea un script?

Para los que empiezan de cero, crear un script es tan sencillo como seguir estos tres pasos:

  1. Crear el archivo: Abre tu terminal y escribe nano miscript.sh.
  2. El "Shebang": La primera línea siempre debe ser #!/bin/bash. Esto le dice al sistema: "Oye, usa Bash para leer lo que viene".
  3. Dar permisos: El sistema no deja que cualquier archivo se ejecute por seguridad. Debes escribir chmod +x miscript.sh en la terminal para darle "vida".

El Kit de Supervivencia: Scripts Imprescindibles

A continuación, detallamos los scripts que deberían vivir en tu carpeta /usr/local/bin.

A. El Informante: Diagnóstico Rápido de Sistema

Cuando un equipo va lento, lo primero es saber qué tiene dentro. Este script genera un reporte instantáneo.

#!/bin/bash
# Script de Información de Sistema
echo "--- RESUMEN DEL SISTEMA ---"
echo "Fecha actual: $(date)"
echo "Usuario: $USER"
echo "--- HARDWARE ---"
echo "Modelo de CPU: $(lscpu | grep 'Model name' | cut -d ':' -f 2)"
echo "Memoria RAM: $(free -h | grep Mem | awk '{print $2}')"
echo "--- ALMACENAMIENTO ---"
df -h | grep '^/dev/'
echo "---------------------------"

Explicación paso a paso:

  • echo: Muestra texto en pantalla. Es como el "imprimir" de la terminal.
  • $(date): Ejecuta el comando date y mete el resultado ahí mismo.
  • lscpu | grep 'Model name': lscpu da mucha información, pero con grep solo filtramos la línea que nos interesa.
  • df -h: Muestra el espacio en disco en formato humano (GB, MB). El "pipe" (|) sirve para pasarle ese resultado a otro comando para filtrarlo.

B. El Salvavidas: Backup Automatizado con rsync

Hacer copias de seguridad manualmente es la receta perfecta para el desastre. Este script sincroniza una carpeta de trabajo con un disco externo o servidor.

#!/bin/bash
# Backup Inteligente
ORIGEN="/home/usuario/documentos"
DESTINO="/media/usuario/disco_externo/backup_$(date +%Y-%m-%d)"

echo "Iniciando copia de seguridad de $ORIGEN a $DESTINO..."

# Crear la carpeta de destino si no existe
mkdir -p "$DESTINO"

# Ejecutar rsync
rsync -avz --progress "$ORIGEN" "$DESTINO"

echo "¡Copia finalizada con éxito!"

¿Por qué usar rsync y no cp (copiar)?

rsync es la joya de la corona. Si la copia se interrumpe, sabe por dónde se quedó. Además, solo copia los archivos que han cambiado, ahorrando horas de tiempo.

  • -a: Archiva (mantiene permisos y fechas).
  • -v: Verbose (te dice qué está pasando).
  • -z: Comprime los datos durante la transferencia.

C. El Limpiador: Mantenimiento de Espacio en Disco

Con el tiempo, los sistemas acumulan "basura": archivos temporales, logs antiguos y caché de paquetes. Este script lo limpia todo de un plumazo.

#!/bin/bash
# Script de Limpieza profunda
if [ "$EUID" -ne 0 ]; then 
  echo "Por favor, ejecuta este script como root (sudo)."
  exit
fi

echo "Limpiando caché de paquetes (APT)..."
apt-get clean
apt-get autoremove -y

echo "Vaciando la papelera de todos los usuarios..."
rm -rf /home/*/.local/share/Trash/*
rm -rf /root/.local/share/Trash/*

echo "Eliminando logs de más de 30 días..."
find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;

echo "Sistema optimizado."

Detalle Técnico:

  • if [ "$EUID" -ne 0 ]: Este es un seguro. Verifica si eres administrador. Si no, se detiene para no dar errores de permiso.
  • find ... -mtime +30: Busca archivos modificados hace más de 30 días y los borra. Es magia pura para servidores que se llenan de logs.

D. El Centinela: Verificador de Conectividad

¿El problema es el ordenador o es el internet? Este script hace pruebas de ping a diferentes niveles (puerta de enlace, DNS de Google y un dominio).

#!/bin/bash
# Test de Red
OBJETIVOS=("8.8.8.8" "google.com" "192.168.1.1")

for host in "${OBJETIVOS[@]}"
do
  echo "Probando conexión con $host..."
  if ping -c 1 "$host" &> /dev/null
  then
    echo "✅ $host está ONLINE"
  else
    echo "❌ $host está OFFLINE"
  fi
done

Explicación para humanos:

Usamos un "bucle for". En lugar de escribir el comando tres veces, le damos una lista a Bash y le decimos: "Haz esto para cada elemento de la lista". El &> /dev/null sirve para que la terminal no se llene de texto técnico innecesario; solo nos interesa el resultado final.


¿Cómo Organizar tus Scripts?

No sirve de nada tener scripts si están perdidos en la carpeta de "Descargas". Para ser un técnico de élite:

  • Crea una carpeta central: mkdir ~/scripts.
  • Añade esa carpeta al PATH: Esto permite que puedas ejecutar tus scripts escribiendo su nombre desde cualquier lugar.
    • Edita tu archivo .bashrc: nano ~/.bashrc.
    • Al final, añade: export PATH=$PATH:~/scripts.
  • Usa nombres descriptivos: En lugar de s1.sh, usa diagnostico_red.sh.

El Factor Humano: La Ética del Técnico

"Un gran poder conlleva una gran responsabilidad."

Los scripts de borrado (rm -rf) son peligrosos. Siempre prueba tus scripts en una máquina virtual o en una carpeta de prueba antes de usarlos en el equipo de un cliente. Un buen técnico no es el que hace las cosas más rápido, sino el que las hace de forma segura y automatizada.



Automatizar con Bash no es solo una habilidad técnica, es un cambio de mentalidad. Es dejar de ser un operario que pulsa botones para convertirse en un arquitecto de sistemas. Los scripts que hemos visto hoy son los cimientos; a partir de aquí, el límite es tu curiosidad.