Español

Herramientas de desarrollo · Generador de Crontab

crontab(5): qué especifica POSIX y qué es una extensión Vixie

· Antecedentes

cron portabilidad validación

Una tarjeta de gramática de cinco columnas con fichas aceptadas y un límite vigilado
Ilustración de vector original de ToolAcre

No todas las funciones cron son estándar. Esta publicación separa lo que requiere la especificación crontab POSIX de las extensiones (pasos, nombres, apodos) que Vixie cron agregó y que asumen la mayoría de los sistemas Linux.

Es posible que otro programador aún no admita una expresión ToolAcre válida

Una programación que pasa ToolAcre ha satisfecho este analizador, no todas las implementaciones de cron. La portabilidad comienza con esa modesta declaración. La ruta acepta exactamente cinco campos y una gramática de token definida. Un dispositivo, servicio o marco objetivo puede aceptar menos, más o algo estructuralmente diferente.

Mantenga el resultado del navegador como una sola pieza de evidencia: expresión, descripción, advertencias y zona de vista previa. Antes de la implementación, compare la documentación de destino y ejecute una prueba inofensiva. La validación se vuelve peligrosa sólo cuando una señal verde local se convierte en una garantía de compatibilidad universal.

El repositorio no establece lo que requiere POSIX

El libro de trabajo separó los requisitos POSIX de las extensiones, pero no aparece ninguna especificación POSIX en las fuentes del repositorio. El comportamiento de ToolAcre no puede demostrar qué características exige un estándar. Por lo tanto, esta sección describe la sintaxis implementada sin asignarla a un organismo de normalización.

Los rangos numéricos implementados son 0–59 minutos, 0–23 horas, 1–31 días del mes, 1–12 meses y 0–7 días laborables. Se analizan y prueban comodines, valores únicos, rangos inclusivos, listas de comas, pasos comodín, pasos de rango y un valor inicial simple con un paso.

Los nombres, los pasos, el domingo 7 y los alias se implementan aquí sin un reclamo de historial de estándares.

Los nombres de los meses de enero a diciembre y los nombres de los días de la semana de domingo a sábado no distinguen entre mayúsculas y minúsculas. Los nombres pueden aparecer solos, en listas y en rangos. El día laborable 7 se acepta como domingo y se normaliza a 0. Esas son propiedades observables de `parseField`, independientemente de cómo las clasifique otra implementación.

La tabla de alias se expande `@yearly`, `@annually`, `@monthly`, `@weekly`, `@daily`, `@midnight` y `@hourly`. `@reboot` se rechaza deliberadamente porque no tiene un calendario para obtener una vista previa. Las palabras con arroba desconocidas reciben un error al nombrar la lista admitida.

El soporte de asignación de entorno está fuera de este analizador

Las asignaciones de entorno no forman parte de esta gramática de expresión. El cuadro de entrada espera una programación y `parseCron` la divide en cinco partes después de resolver un alias admitido. No se puede probar la expansión, cotización o portabilidad de una línea `KEY=value` a través de esta ruta.

Esa omisión evita una afirmación de estándares falsos. Un archivo crontab completo puede contener construcciones que una herramienta de solo expresión nunca ve. Compruébelos por separado con el objetivo. Los errores de campo precisos de ToolAcre no deben reutilizarse como juicios sobre líneas no relacionadas en un archivo más grande.

Verifique la gramática objetivo y use una prueba de programación inofensiva

La verificación de objetivos debe comenzar con el recuento de campos y los operadores. Confirme si se aceptan nombres, domingo 7, pasos de barra diagonal y alias de arroba. Luego instale una acción observable inofensiva a corto plazo, elimínela después de capturar la evidencia y compare el resultado objetivo con la expresión deseada.

No pruebe la portabilidad con un comando confidencial o esperando una fecha anual poco común. Elija la sonda segura más pequeña que distinga el soporte gramatical. ToolAcre puede ayudar a construir ese cronograma y explicarlo, mientras que la ejecución objetivo establece la parte que el navegador no puede conocer.

Ejemplo resuelto: formulario de pasos y lista explícita bajo la gramática de ToolAcre

Por cada cinco minutos, ToolAcre acepta `*/5 * * * *`. También acepta la lista de actas explícita `0,5,10,15,20,25,30,35,40,45,50,55 * * * *`. El análisis expande ambos campos de minutos a los mismos doce valores, de modo que sus candidatos de la próxima ejecución coincidan en el mismo instante y zona inicial.

La lista explícita puede servir como candidato alternativo cuando un objetivo carece de sintaxis de pasos, pero este repositorio no puede certificar la compatibilidad con la lista de ese objetivo. Compare ambas formas en ToolAcre para determinar la equivalencia semántica, luego verifique cuál es la forma de los documentos de destino. La equivalencia aquí no es prueba de portabilidad allí.

Se rechaza la sintaxis de seis campos; su semántica externa no está documentada aquí

No se acepta un sexto campo. El error sugiere que un estilo de segundos iniciales pertenece a Quartz o a una entrada similar a systemd, pero el analizador no implementa esas gramáticas. No tiene campo de año ni operadores `?`, `L`, `W` o `#`.

Cuente los campos antes de intentar la traducción. Si la sintaxis no compatible tiene significado de programación, una reescritura aparente de cinco campos puede generar pérdidas. Utilice documentación y pruebas para el programador de origen, luego exprese solo los requisitos representables por la gramática de destino de ToolAcre. Todo lo demás debería seguir siendo una incompatibilidad explícita.

Conclusión: sepa qué funciones son extensiones y utilice el generador para crear y verificar ambos formularios cuando la portabilidad sea importante

La portabilidad es una comparación, no una etiqueta incrustada en una expresión. ToolAcre ofrece un lado bien probado: cinco posiciones, límites numéricos, nombres seleccionados, rangos componibles/lists/steps y siete alias. También ofrece rechazos claros para formularios mal formados o extraños.

Utilice ese contrato para razonar con precisión y luego verifique la otra parte. Una lista explícita y un paso pueden ser iguales en este analizador, mientras que en otros lugares solo funciona uno. Informar sobre los límites del dialecto es más factible que invocar un estándar que el artículo en realidad no ha obtenido.