Control del tiempo y automatización
1. Comandos del módulo #
| Qué quiero hacer | Linux | Windows CMD | PowerShell |
|---|---|---|---|
| Pausar ejecución | sleep | timeout | Start-Sleep |
| Ejecutar una tarea una sola vez en el futuro | at | schtasks /create /sc once | Register-ScheduledTask |
| Automatizar tareas periódicas | cron | Programador de tareas | Programador de tareas |
| Gestionar tareas programadas | crontab | schtasks | Get-ScheduledTask |
2. sleep - Pausar la ejecución #
¿Qué hace? #
Detiene la ejecución de un script o comando durante un tiempo determinado.
Sintaxis básica #
1sleep TIEMPO
El tiempo puede indicarse en:
s→ segundos (por defecto)m→ minutosh→ horasd→ días
Modificadores importantes #
Para las pausas se usan operandos con unidades de tiempo; las opciones habituales de GNU sleep son informativas, como --help y --version.
Ejemplos #
1sleep 5
⏸ Pausa 5 segundos
1sleep 2m
⏸ Pausa 2 minutos
1echo "Empieza"; sleep 3; echo "Termina"
⏱ Introduce una pausa entre comandos
Uso típico #
- Scripts
- Simulaciones
- Esperar a que otro proceso termine
3. at - Ejecutar un comando una sola vez en el futuro #
¿Qué hace? #
Programa un comando para que se ejecute una vez en un momento concreto.
⚠️ Necesita que el servicio atd esté activo.
Sintaxis básica #
1at HORA
Modificadores importantes #
| Opción | Significado |
|---|---|
atq | Ver tareas programadas |
atrm ID | Eliminar una tarea |
-f archivo | Ejecutar comandos desde un archivo |
Ejemplos #
1at 18:30
Luego escribes:
1echo "Hola desde el futuro" >> ~/mensaje.txt 2Ctrl+D
📌 Se ejecuta a las 18:30; si esa hora ya ha pasado, at la programa normalmente para el día siguiente.
1at now + 10 minutes
Ejecuta el comando dentro de 10 minutos
1atq
Lista tareas pendientes
1atrm 2
Borra la tarea con ID 2
Cuándo usar at #
- Tareas puntuales
- Recordatorios
- Acciones únicas (backup, apagado, aviso…)
4. cron - Automatización periódica #
¿Qué es? #
Servicio del sistema que ejecuta tareas de forma repetitiva (diaria, semanal, etc.).
El usuario no ejecuta cron directamente, se configura con crontab.
5. crontab - Editor de tareas programadas #
¿Qué hace? #
Gestiona las tareas periódicas del usuario.
Sintaxis básica #
1crontab -e
Modificadores importantes #
| Opción | Significado |
|---|---|
-e | Editar tareas |
-l | Listar tareas |
-r | Borrar todas |
-u usuario | Gestionar crontab de otro usuario (root) |
Formato de una tarea cron #
1MIN HORA DIA MES DIA_SEMANA COMANDO
| Campo | Valores |
|---|---|
| MIN | 0-59 |
| HORA | 0-23 |
| DIA | 1-31 |
| MES | 1-12 |
| DIA_SEMANA | 0-7 (domingo = 0 o 7) |
Ejemplos típicos #
1* * * * * echo "Hola" >> ~/cron.txt
🕐 Cada minuto
10 8 * * * echo "Buenos días" >> ~/saludo.txt
🌅 Todos los días a las 08:00
10 0 * * 1 echo "Es lunes" >> ~/lunes.txt
📅 Todos los lunes a medianoche
1*/5 * * * * echo "Cada 5 minutos" >> ~/log.txt
⏱ Cada 5 minutos
Detalles importantes para alumnos #
- El PATH es limitado → usar rutas completas (
/usr/bin/node) - No hay terminal → redirigir salida (
>> archivo.txt) - No hay una terminal interactiva; conviene redirigir la salida y los errores a un log. Algunos sistemas también los envían por correo local si está configurado.
6. Comparativa rápida (muy buena para diapositiva) #
| Comando | Uso |
|---|---|
sleep | Pausa |
at | Una vez |
cron | Servicio |
crontab | Programación periódica |
Resumen del tema
Conceptos clave #
sleep: pausa la ejecución de un script o comando por un tiempo determinado (segundos, minutos, horas).at: programa la ejecución de una tarea puntual en una fecha u hora futura (at 14:00,at now + 2 hours).cronycrontab: demonio y herramienta para programar tareas periódicas repetitivas.- Formato Crontab de 5 Campos:
MIN HORA DIA_DEL_MES MES DIA_DE_LA_SEMANA COMANDO. - Buenas Prácticas en Cron: usar siempre rutas absolutas para binarios y scripts, y redirigir salidas y errores a archivos de log (
>> /var/log/tarea.log 2>&1).
Qué debes recordar #
Usa crontab -e para editar tareas programadas y especifica siempre rutas absolutas para evitar problemas con el $PATH restringido del entorno de cron.