Traductor de expresiones cron:
¿qué hace esta línea?
Pega una línea tal cual sale del crontab — los cinco campos solos, o la línea entera con su comando. Obtienes la programación como una sola frase en español, cada campo decodificado y las próximas diez fechas en que se ejecuta. No se envía nada a ningún sitio: el análisis se ejecuta en tu navegador.
Lee los campos en este orden
Las líneas de crontab heredadas casi nunca están documentadas. Lee los cinco campos en este orden:
1 · Cuenta los campos
Cinco campos separados por espacios es crontab. Seis o siete significa Quartz u otro planificador que antepone los segundos — un lenguaje distinto que solo se parece por fuera. Todo lo que va después del quinto campo es el comando, no la programación.
5 = cron · 6+ = no es cron2 · Lee los dos últimos primero
El día del mes y el día de la semana deciden qué días. Si los dos llevan números, párate ahí: cron se dispara cuando cualquiera de los dos coincide — la regla OR, y el malentendido clásico.
los dos activos → OR, no AND3 · Luego los dos primeros
El minuto y la hora son a qué hora esos días. Un asterisco en el campo del minuto significa 60 ejecuciones por hora. El campo del mes solo importa cuando no es un asterisco.
* en el minuto = 60×/horaQué hace cada línea de este crontab
La salida de crontab -l en un servidor que no conoces, traducida línea por línea. Traduce cualquiera de ellas — el botón la carga en el lector de arriba. Las líneas completas también funcionan: pega la línea entera, comando incluido, en la barra de arriba, y el lector toma la programación y nombra la parte que ha ignorado.
*/5 * * * * /usr/local/bin/health-ping.sh
30 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
0 9 * * 1-5 /usr/local/bin/daily-digest.sh
0 6 1 * * /usr/local/bin/invoice-run.sh
Cómo leer cada símbolo de cron
Cada símbolo es una manera abreviada de decir algo, y leerlo mal es la forma más habitual de malinterpretar una programación en una revisión de código:
- Los pasos cuentan desde el mínimo del campo. */6 en el campo de la hora es 00, 06, 12, 18 — no «seis horas después de la última ejecución».
- Los números en los dos campos de día significan OR, no AND. Cron se dispara cuando coincide cualquiera de los dos, así que la programación es más amplia de lo que parece.
- Los nombres y los alias son un dialecto. MON y @daily se leen bien aquí y en la mayoría de los cron — los números son la forma que acepta cualquier cron.
Los símbolos, decodificados
a qué equivale cada uno0 0 * * 0, @weekly y SUN
Las cuatro líneas de abajo son domingo a medianoche. El traductor lee cada una y devuelve la misma frase y la misma lista de próximas ejecuciones.
Expresiones cron de uso diario
Cada una está ya decodificada y enlaza a su página completa — próximas ejecuciones, variantes y la línea de crontab lista para copiar. El conjunto completo vive en la biblioteca de ejemplos de cron.
Las expresiones cron más consultadas
Cada minuto de cada hora, todos los días — 1.440 ejecuciones al día, 525.600 al año. Los cinco campos son comodines, así que nada está restringido. Es la programación correcta para un ping de salud barato y la incorrecta para casi cualquier otra cosa. Si la heredas delante de un script costoso, es la primera línea que hay que cuestionar.
Cada 5.º valor de ese campo, contado desde su mínimo. En el campo del minuto, */5 se dispara en :00, :05, :10 … :55 — 12 veces por hora, en las marcas del reloj. No significa «5 minutos después de la última ejecución»: cron compara con valores del reloj. Así que */7 te da :00, :07 … :56 y luego :00 otra vez — un hueco de 4 minutos al principio de cada hora.
Todos los días a medianoche, hora del servidor — minuto 0 de la hora 0, cualquier fecha, cualquier mes, cualquier día de la semana. Es la programación exacta que abrevia @daily. «Medianoche» es la medianoche del servidor, y en las noches de cambio de horario un servidor con hora local puede saltársela o repetirla.
Idéntico. Los alias se corresponden exactamente: @hourly = 0 * * * *, @daily y @midnight = 0 0 * * *, @weekly = 0 0 * * 0, @monthly = 0 0 1 * *, @yearly = 0 0 1 1 *. La excepción es @reboot — no es una programación en absoluto, se dispara cuando arranca el demonio de cron. Este traductor expande los alias para que siempre veas los cinco campos que hay debajo.
Porque no viene de un crontab. Quartz (Jenkins, Spring), algunos planificadores en la nube y varias librerías cron anteponen un campo de segundos, lo que da seis campos — o siete con un año al final. Un crontab no la instalará. Si el campo de segundos es 0, quítalo y los cinco restantes normalmente se leen como POSIX. Si es cualquier otra cosa, la programación se dispara con una frecuencia inferior al minuto, y el cron normal no puede expresar eso en absoluto.
Es la forma que tiene Quartz de decir «sin valor concreto». Quartz exige que exactamente uno de los dos campos de día se retire, así que uno de ellos lleva un interrogante. El cron POSIX no tiene esa regla ni ningún ? — un simple * cumple la misma función. Cuando los dos campos de día sí están restringidos, cron se ejecuta con la unión de ambos. Pega un ? en un crontab y la línea se rechaza.
Sí. Pega 30 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1 y el lector toma los cinco campos de la programación, los traduce, y nombra el resto de la línea como la parte que ha ignorado. También reconoce el formato de /etc/crontab, donde hay un nombre de usuario entre la programación y el comando. Lo que no hará es adivinar una línea de seis campos: un campo de segundos al principio significa Quartz, no crontab, y eso es un lenguaje distinto.
Pega la expresión de arriba. La vista de resultado lista las próximas diez ejecuciones como fechas concretas, calculadas por un analizador real en la zona horaria de tu navegador. El crontab en sí se ejecuta con el reloj del servidor: si la máquina va en UTC y tú no, toda la lista se desplaza según tu diferencia horaria. Eso sí, nada te dice que una ejecución haya tenido éxito — cron solo registra que se ha iniciado.
Sigue explorando
Herramientas gratis, solo el principio.
Uptimia cuida tus sitios.
Disponibilidad, SSL, caducidad de dominio, velocidad de carga, transacciones — monitorizados desde 171+ ubicaciones en todo el mundo. 30 días gratis.