certmundo.
es‑mx

6 min de lectura

¿Cómo usar scripts básicos de Bash para automatizar tareas?

Un script de Bash es un archivo de texto que contiene una serie de comandos que Linux ejecuta de forma automática y en orden.

En lugar de escribir diez comandos uno por uno cada día, los pones todos en un archivo y Linux los corre por ti con un solo comando. Esto ahorra tiempo y elimina errores humanos.

Estructura de un script de Bash

Todo script de Bash tiene tres partes esenciales:

  1. Shebang: la primera línea que le dice a Linux qué intérprete usar.
  2. Comandos: las instrucciones que quieres ejecutar.
  3. Permisos de ejecución: sin esto, Linux no correrá el archivo.

La estructura mínima de cualquier script es:

#!/bin/bash
# Comentario que describe qué hace el script
comando1
comando2
comando3

#!/bin/bash se llama shebang. Siempre va en la línea 1, sin espacios antes. Le indica al sistema que use Bash para interpretar el archivo.

Los comentarios empiezan con #. Linux los ignora al ejecutar el script, pero son útiles para que tú (u otras personas) entiendan el código después.

Tu primer script: reporte del sistema

Vamos a crear un script que muestre información básica del sistema. Este tipo de reporte es útil en empresas como FEMSA o Bimbo, donde los administradores revisan servidores todos los días.

Paso 1: Crea el archivo.

nano reporte.sh

Paso 2: Escribe el contenido.

#!/bin/bash
# Script: reporte.sh
# Descripción: Muestra un reporte básico del sistema

echo "=== REPORTE DEL SISTEMA ==="
echo "Fecha y hora:"
date
echo ""
echo "Usuario actual:"
whoami
echo ""
echo "Espacio en disco:"
df -h
echo ""
echo "Memoria disponible:"
free -h
echo "=== FIN DEL REPORTE ==="

Paso 3: Guarda y cierra con Ctrl+O, Enter, Ctrl+X.

Paso 4: Dale permisos de ejecución.

chmod +x reporte.sh

Paso 5: Ejecuta el script.

./reporte.sh

El ./ le dice a Linux que el archivo está en la carpeta actual. Sin él, el sistema no encontrará el script.

Variables en Bash

Una variable es un nombre que guarda un valor para usarlo después.

Las variables hacen tus scripts más flexibles. Se definen sin espacios alrededor del signo =.

nombre="servidor01"
echo "Revisando: $nombre"

Para usar el valor de una variable, escribe $ antes del nombre. Observa este script más completo:

#!/bin/bash
# Script: saludo_empresa.sh

empresa="Liverpool"
ciudad="Ciudad de México"
fecha=$(date +%d/%m/%Y)

echo "Empresa: $empresa"
echo "Ciudad: $ciudad"
echo "Fecha de ejecución: $fecha"

La sintaxis $(comando) ejecuta un comando y guarda su resultado en una variable. En este caso, $(date +%d/%m/%Y) guarda la fecha con formato día/mes/año.

Condicionales: if / else

Un condicional permite que tu script tome decisiones según una condición.

La estructura básica es:

if [ condición ]; then
  comando_si_es_verdadero
else
  comando_si_es_falso
fi

Ejemplo práctico: verificar si existe una carpeta de respaldos antes de copiar archivos.

#!/bin/bash
# Script: verificar_respaldo.sh

carpeta="/home/usuario/respaldos"

if [ -d "$carpeta" ]; then
  echo "La carpeta de respaldos ya existe. Continuando..."
else
  echo "La carpeta no existe. Creándola ahora..."
  mkdir -p "$carpeta"
  echo "Carpeta creada en: $carpeta"
fi

-d verifica si existe un directorio. -f verifica si existe un archivo. Estos se llaman operadores de prueba.

Ejemplo completo: script de respaldo automático

Este es un caso real. En una empresa de logística como Mercado Libre, los sistemas generan archivos de registros (logs) todos los días. Este script copia esos archivos a una carpeta de respaldo con la fecha del día.

#!/bin/bash
# Script: respaldo_logs.sh
# Descripción: Copia los logs del día a una carpeta de respaldo

fecha=$(date +%Y-%m-%d)
origen="/var/log"
destino="/home/admin/respaldos/logs_$fecha"

echo "Iniciando respaldo del $fecha..."

if [ -d "$destino" ]; then
  echo "El respaldo de hoy ya existe. Saliendo."
  exit 1
fi

mkdir -p "$destino"
cp "$origen"/*.log "$destino/"

echo "Respaldo completado en: $destino"
echo "Archivos copiados:"
ls "$destino"

exit 1 termina el script con un código de error. Esto es útil cuando algo sale mal y no quieres que el script continúe.

Automatizar con cron

cron es el servicio de Linux que ejecuta scripts de forma automática a la hora que tú definas.

Para programar tu script, edita el archivo crontab:

crontab -e

Cada línea en crontab tiene este formato:

minuto  hora  día_del_mes  mes  día_semana  comando

Ejemplos:

Expresión cron Significado
0 8 * * * Todos los días a las 8:00 a.m.
30 18 * * 1-5 De lunes a viernes a las 6:30 p.m.
0 0 1 * * El primer día de cada mes a medianoche
*/15 * * * * Cada 15 minutos

Para ejecutar respaldo_logs.sh todos los días a las 2:00 a.m., agrega esta línea:

0 2 * * * /home/admin/scripts/respaldo_logs.sh

Usa la ruta completa del script en crontab. cron no sabe en qué carpeta estás cuando corre el comando.

Errores comunes

Error 1: Olvidar el shebang.

Si no pones #!/bin/bash en la primera línea, Linux puede intentar ejecutar el script con el intérprete equivocado. El resultado es un error difícil de entender. Siempre empieza con el shebang.

Error 2: Espacios alrededor del signo = en variables.

Esto es incorrecto:

nombre = "Bimbo"

Esto es correcto:

nombre="Bimbo"

Con espacios, Bash interpreta nombre como un comando y falla inmediatamente.

Error 3: No dar permisos de ejecución.

Si ves el error Permission denied al intentar correr un script, es porque olvidaste ejecutar chmod +x nombre_script.sh. Sin permisos de ejecución, Linux no correrá el archivo.

Error 4: Usar rutas relativas en crontab.

Dentro de crontab, escribe siempre la ruta completa: /home/usuario/scripts/mi_script.sh. Nunca uses ./mi_script.sh porque cron no sabe cuál es tu directorio actual.

Error 5: No probar el script antes de programarlo en cron.

Ejecuta tu script manualmente primero. Confirma que funciona sin errores. Después agrégalo a crontab. Muchos administradores programan scripts rotos y no se dan cuenta hasta horas después.

Referencia rápida de Bash

Elemento Sintaxis Ejemplo
Shebang #!/bin/bash Primera línea del archivo
Variable nombre=valor empresa="FEMSA"
Usar variable $nombre echo $empresa
Resultado de comando $(comando) fecha=$(date)
Condicional if [ cond ]; then ... fi Ver ejemplo arriba
Verificar directorio [ -d "$ruta" ] Si existe la carpeta
Verificar archivo [ -f "$ruta" ] Si existe el archivo
Permisos de ejecución chmod +x archivo.sh Antes de ejecutar
Ejecutar script ./script.sh Desde la carpeta actual
Terminar con error exit 1 Cuando algo falla

Lo que aprendiste en este curso

Este es el último tema del curso. Has recorrido un camino completo desde cero.

Empezaste entendiendo qué es Linux y por qué lo usan empresas reales en México. Aprendiste a navegar el sistema de archivos, a manipular archivos y carpetas, a gestionar permisos, a instalar software, a administrar procesos y usuarios, y ahora a automatizar tareas con scripts.

Esas habilidades combinadas te permiten trabajar en servidores reales, configurar entornos de desarrollo y mantener sistemas en producción.

Próximos pasos

  • Practica a diario. Crea un script pequeño cada semana. Automatiza algo que ya hagas a mano: limpiar carpetas temporales, hacer respaldos, verificar conexiones.
  • Aprende más sobre Bash. Investiga bucles (for, while), funciones y manejo de argumentos ($1, $2). Son los siguientes pasos naturales.
  • Instala una distro en tu máquina. Ubuntu o Fedora son buenas opciones para principiantes en México. Practica en un sistema real, no solo en máquinas virtuales.
  • Explora herramientas del mercado laboral. En ofertas de trabajo en plataformas como OCC Mundial o LinkedIn México, busca puestos de administrador de sistemas o DevOps. Verás que Linux es requisito básico en casi todos.

Puntos clave

  • Todo script de Bash debe comenzar con `#!/bin/bash` en la primera línea (shebang). Sin él, el sistema puede usar el intérprete equivocado y el script fallará.
  • Las variables en Bash se definen sin espacios: `nombre="valor"`. Para usarlas, escribe `$nombre`. Un espacio alrededor del `=` rompe el script.
  • Usa `chmod +x script.sh` para dar permisos de ejecución antes de correr cualquier script. Sin este paso, Linux rechazará la ejecución con un error de permisos.
  • Programa tus scripts con `cron` para que se ejecuten automáticamente. Usa siempre la ruta completa del script en crontab, nunca rutas relativas como `./`.
  • Prueba cualquier script manualmente antes de programarlo en cron. Un script con errores programado en cron puede fallar en silencio durante horas sin que te des cuenta.

Comparte esta lección:

¿Cómo usar scripts básicos de Bash para automatizar tareas? | Linux para Principiantes | Certmundo