Si usas Linux, tienes al alcance una herramienta poderosa para automatizar tareas: Cron. Y con ella puedes programar casi cualquier tipo de trabajo, como por ejemplo, hacer una copia de seguridad de tus documentos a un disco externo sin que tengas que mover un dedo.
Qué es Cron y cómo funciona
Cron es un servicio que ejecuta comandos o scripts en momentos específicos, según lo programes.
Cada usuario en Linux puede tener su propio archivo llamado crontab, que es donde se guardan esas tareas programadas.
Si quieres ver tus tareas programadas, solo abre una terminal y escribe:
crontab -l
Si no ves nada, significa que aún no tienes tareas programadas.
Entendiendo el formato de tiempo en Cron
Lo que a muchos confunde al principio es la forma en que se indica cuándo se debe ejecutar una tarea.
Cron usa cinco campos que representan cada uno de ellos, uno de los siguientes valores:
| Campo | Valores permitidos |
|---|---|
| Minutos (M) | 0-59 |
| Horas (H) | 0-23 (formato 24 horas) |
| Día del mes (D) | 1-31 |
| Mes (MO) | 1-12 |
| Día de la semana (DW) | 0-6 (0 o 7 = domingo, o nombres como Sunday) |
El formato general es:
M H D MO DW
Por ejemplo, para que un script se ejecute todos los domingos a las 11:00 p.m., la línea en crontab sería:
0 23 * * 0
Aquí, los asteriscos (*) indican “todos” para ese campo, así que todos los días del mes, todos los meses, y el domingo (día 0).
Crear una tarea automática: un ejemplo práctico
Vamos a crear un script que haga un respaldo de tu carpeta de documentos todos los domingos a las 11 p.m.
- Crea un archivo llamado
sat_backup.shcon este contenido:
#!/bin/bash
# Carpeta a respaldar
backup_files="/home/$USER/Documents"
# Destino del respaldo
dest="/backup"
# Nombre del archivo comprimido
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"
# Crear el respaldo usando tar
tar czf $dest/$archive_file $backup_files
- Crea el directorio donde guardarás los respaldos y dale permisos:
sudo mkdir /backup
sudo chmod -R u+w /backup
sudo chown -R $USER:$USER /backup
- Mueve el script a
/usr/local/biny dale permisos de ejecución:
sudo mv sat_backup.sh /usr/local/bin
sudo chmod u+x /usr/local/bin/sat_backup.sh
- Prueba que el script funcione con:
sat_backup.sh
Si todo va bien, deberías ver un archivo .tgz creado en /backup.
Programar la tarea con Cron
Para editar tu crontab, usa:
crontab -e
Si es tu primera vez, te pedirá que elijas un editor. Nano es una buena opción para principiantes.
Al final del archivo, añade esta línea para que el script se ejecute todos los domingos a las 11 p.m.:
0 23 * * 0 /usr/local/bin/sat_backup.sh > /dev/null 2>&1
¿Qué significa ese final extraño?
> /dev/null 2>&1 redirige toda la salida y errores del script a un “agujero negro” para que no generen mensajes ni emails innecesarios.
Guarda el archivo (en Nano, Ctrl + X, luego Y y Enter) para verificar que tu tarea se guardó, usa:
crontab -l
¡Listo! Con eso, ahora tu respaldo se ejecutará automáticamente cada domingo.
Conclusión
Cron es una herramienta esencial para cualquier usuario o administrador Linux que quiera mantener tareas automatizadas sin complicaciones.
Con este conocimiento, puedes programar desde limpiezas de disco hasta sincronizaciones complejas.
