Linux · Sección 13

Cron, timers y automatización segura

Expresiones temporales, entorno reducido, propiedad, bloqueo, idempotencia, registros y unidades timer de systemd.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Repasa rutas absolutas, permisos, redirecciones y procesos antes de ejecutar tareas sin supervisión.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Cron y calendario con Automatización segura y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Prepara una máquina virtual Linux con red NAT e instantáneas, o WSL para las prácticas que no requieren kernel y systemd completos.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Cron y calendario y Automatización segura? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Programarás tareas comprendiendo tiempo, entorno, concurrencia, registros e idempotencia, y compararás cron con timers de systemd.

Al terminar podrás
  • Cron describe cinco campos y un entorno reducido
  • Propiedad, rutas e idempotencia son parte de la tarea
  • Un timer de systemd conecta calendario, servicio y registros
01
Tiempo explícito

Cron describe cinco campos y un entorno reducido

Una entrada de usuario expresa minuto, hora, día del mes, mes y día de semana, seguida de la orden. Los asteriscos, listas, rangos y pasos combinan calendarios. Cron no carga necesariamente tu entorno interactivo: usa rutas absolutas, define PATH y registra salida y errores.

01

*/15 en minuto significa cada quince minutos.

02

Día del mes y día de semana pueden tener semántica OR según cron.

03

La zona horaria y el horario de verano afectan expectativas.

Comprueba lo aprendido · 01

¿Qué significa */20 * * * *?

Mostrar respuesta +

Ejecutar en los minutos 0, 20 y 40 de cada hora, todos los días, según el reloj y zona del sistema.

02
Automatización segura

Propiedad, rutas e idempotencia son parte de la tarea

Una tarea privilegiada es tan segura como cada script, directorio, comando y archivo que usa. Evita PATH ambiguo, archivos temporales predecibles y scripts editables. Un trabajo idempotente puede repetirse sin duplicar efectos; un bloqueo evita solapamientos cuando una ejecución tarda más que el intervalo.

01

stat y namei revisan la cadena de propiedad.

02

flock coordina una única ejecución.

03

mktemp crea nombres temporales difíciles de predecir.

Comprueba lo aprendido · 02

¿Qué riesgo existe si root ejecuta un script ubicado en un directorio escribible por cualquier usuario?

Mostrar respuesta +

Otro usuario puede reemplazar o modificar el script y lograr que root ejecute contenido no autorizado.

03
Timers y evidencia

Un timer de systemd conecta calendario, servicio y registros

Un timer activa normalmente una unidad service. Puede expresar calendarios, retrasos, persistencia tras apagados y aleatorización. systemctl list-timers muestra próxima y última ejecución; journalctl conserva el resultado junto a la unidad. Elegir cron o timer depende del sistema y de la operación, no de cuál parece más moderno.

01

OnCalendar expresa tiempo de calendario.

02

Persistent puede recuperar una ejecución perdida.

03

RandomizedDelaySec distribuye carga entre equipos.

Comprueba lo aprendido · 03

¿Qué ventaja tiene separar una unidad service de su timer?

Mostrar respuesta +

Puedes ejecutar y comprobar la operación de forma independiente, mientras el timer se limita a decidir cuándo activarla.

Resumen de la sección

Tu recorrido en tres ideas

  1. Cron describe cinco campos y un entorno reducido
  2. Propiedad, rutas e idempotencia son parte de la tarea
  3. Un timer de systemd conecta calendario, servicio y registros
PROFUNDIZACIÓN / LABORATORIO GUIADO

Programa un respaldo que pueda repetirse

Combina calendario, identidad, entorno, exclusión mutua, logs e idempotencia para automatizar sin sorpresas.

CASO

Una tarea funciona en tu terminal, falla en cron y a veces dos ejecuciones escriben el mismo destino.

Procedimiento

  1. Ejecuta manualmente con un entorno mínimo y rutas absolutas.
  2. Añade bloqueo, temporal, registro y estado de salida.
  3. Programa, observa una ejecución y restaura un archivo desde el resultado.

Evidencia mínima

  • Entorno y calendario documentados.
  • Prueba de solapamiento impedido.
  • Restauración con hash correcto.
Mostrar razonamiento modelo +

El script no depende de .bashrc, crea su temporal, usa flock y solo publica un respaldo validado. Cron o el timer registra cada estado.

Para ir más lejos

¿Cómo notificarías fallos repetidos sin enviar un aviso por cada intento?

CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Suponer que cron carga el mismo PATH y configuración que tu terminal.

ERROR 02

Programar una tarea frecuente sin evitar solapamientos ni guardar registros.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Programa un informe diario idempotente mediante cron o timer y demuestra una ejecución manual, una programada y un fallo controlado.

Mostrar pauta de corrección +
Una respuesta sólida:
  • Explica calendario y zona horaria.
  • Usa rutas y propiedad seguras.
  • Conserva estado, stdout, stderr y mecanismo de bloqueo.