¿Por qué convertir TIMER a CRON?
Un .timer de systemd y una tarea de cron programan comandos recurrentes, por lo que los administradores que migran fuera de systemd quieren la misma programación expresada en sintaxis .CRON. La expresión de calendario OnCalendar= se mapea limpiamente a los campos de minuto-hora-día-mes-día de la semana de cron para las programaciones más comunes.
Cómo convertir TIMER a CRON
crontab + mapeo manual FREE
Ejecute crontab -e y añada una línea cuyos cinco campos de tiempo coincidan con el temporizador, p. ej. OnCalendar=*-*-* 02:00:00 se convierte en 0 2 * * * /ruta/al/comando.
systemd-analyze calendar FREE
Ejecute systemd-analyze calendar "*-*-* 02:00:00" para confirmar los próximos tiempos de ejecución exactos del valor OnCalendar antes de traducirlo a campos de cron.
Acerca de estos formatos
Un archivo .timer es una unidad de systemd que programa cuándo se ejecuta otra unidad (generalmente un archivo .service coincidente) en Linux, funcionando como un reemplazo moderno para…
Abrir detalles de .TIMER →Un archivo .CRON está asociado con Unraid OS Cron data, un archivo de tipo misc.
Abrir detalles de .CRON →Calidad y qué observar
- Solo se traslada la programación; el comando, el entorno y el usuario provienen del archivo
.serviceemparejado y debe añadirlos usted mismo a la línea de cron. - Los extras de systemd como
Persistent=(recuperación tras tiempo de inactividad),RandomizedDelaySec=y las ventanas de precisión no tienen equivalente en cron y se pierden. - Las expresiones
OnCalendarcomplejas o de menos de un minuto no pueden representarse en la sintaxis de cinco campos de cron basada en minutos.
Preguntas frecuentes
¿Existe un convertidor automático de timer a cron?
OnCalendar= a los campos de cron a mano, verificando opcionalmente con systemd-analyze calendar y crontab.guru.¿De dónde proviene el comando para la línea de cron?
ExecStart= en la unidad .service correspondiente que activa el temporizador.¿Cómo convierto programaciones de estilo `@daily`?
OnCalendar=*-*-* 00:00:00 equivale a @daily o 0 0 * * * en cron.¿Seguirán funcionando las ejecuciones de recuperación?
Persistent=true.