# Constructor de Expresiones Cron

> Una página de jmrp.io, publicada como markdown. Índice: https://jmrp.io/llms.txt

Canonical: https://jmrp.io/es/tools/cron-builder/
Language: es
Alternate: https://jmrp.io/tools/cron-builder/index.md
Updated: 2026-09-03
License: https://jmrp.io/es/license/
Category: developer
Tags: cron, programación, linux, crontab, automatización

Constructor visual de expresiones cron con selectores interactivos, presets, vista previa de ejecuciones y línea crontab. Todo en el navegador.
Build-Date: 2026-09-06

Características:
- Crea expresiones cron con selectores visuales
- Elige entre 14 presets de programación comunes
- Lee descripciones legibles de la programación
- Previsualiza las próximas 10 ejecuciones
- Genera líneas crontab y enlaces para compartir

Preguntas que responde:

**¿Qué es una expresión cron?**

Una expresión cron es una cadena de cinco campos separados por espacios (minuto, hora, día del mes, mes, día de la semana) que indica a un programador tipo Unix cuándo ejecutar una tarea de forma recurrente.

**¿Cómo ejecuto una tarea cron cada 5 minutos?**

Usa la sintaxis de paso "*/5 * * * *". Puedes construirla aquí seleccionando el paso en el campo de minutos o eligiendo el preset "cada 5 minutos", y luego copiar la línea de crontab generada.

**¿Esta herramienta envía mi expresión cron a un servidor?**

No. Todo el análisis, la descripción legible y la vista previa de próximas ejecuciones se realizan íntegramente en tu navegador. El enlace compartible solo codifica la expresión en la URL.

**¿Qué ocurre cuando se definen a la vez el día del mes y el día de la semana?**

La mayoría de implementaciones de cron usan lógica OR: cuando ninguno de los dos campos es "*", la tarea se ejecuta cuando se cumple cualquiera de las dos condiciones (día del mes o día de la semana).

**¿Por qué falla mi tarea cron si la programación es correcta?**

Cron se ejecuta con un PATH mínimo y la zona horaria del sistema, así que usa rutas absolutas para los comandos y comprueba timedatectl. Redirige la salida con ">> /var/log/myjob.log 2>&1" para capturar errores.


---

**Herramienta interactiva** — esta página contiene la aplicación en funcionamiento, no una descripción de ella.

## Acerca de esta herramienta

Crea expresiones de programación cron utilizando una interfaz visual con
selectores de campo interactivos. Haz clic en los valores para alternarlos,
usa los botones de selección rápida o escribe las expresiones directamente. La
herramienta muestra una descripción legible, previsualiza las próximas 10
ejecuciones y genera una línea de crontab lista para usar.

### Características

- **Selectores de campo interactivos** — haz clic en los valores individuales para minuto (0–59), hora (0–23), día del mes (1–31), mes (1–12) y día de la semana (0–6) con botones de alternancia visuales
- **Ayudas de selección rápida** — botones "Todos (*)" y "Limpiar" por campo para una selección rápida
- **Sincronización bidireccional** — edita el texto de la expresión y los selectores se actualizan, o haz clic en los selectores y la expresión se actualiza
- **Generación inteligente de expresiones** — detecta automáticamente patrones de paso (`*/5`), rangos ( `1-5`) y listas (`1,15`) a partir de los valores seleccionados
- **14 presets comunes** — cada minuto, 5/15/30 min, cada hora, 6h, 12h, diario, dos veces al día, días laborables, semanal, mensual, trimestral
- **Descripción legible** — traducción en lenguaje natural de la expresión con nombres de días y meses
- **Próximas 10 ejecuciones** — previsualización de las próximas ejecuciones con tiempos relativos (en Xd Xh, en Xh Xm)
- **Línea de crontab** — campo de comando editable que se combina con la expresión para una línea de crontab lista para pegar
- **Copiar y compartir** — copia la expresión, la línea completa de crontab o una URL compartible con la expresión codificada
- **Referencia de sintaxis integrada** — referencia rápida desplegable para los símbolos `*`, `,`, `-`, `/` y el diagrama de campos

### ¿Cómo uso esta herramienta?

1. Haz clic en los valores en los **selectores de campo** para alternarlos. Usa "Todos (*)" para seleccionar todos los valores o "Limpiar" para deseleccionar todos.
2. O escribe una expresión cron directamente en el campo de entrada — los
  selectores se sincronizan automáticamente.
3. Comprueba la **descripción legible** para verificar que la programación coincide con tu intención.
4. Revisa las **próximas 10 ejecuciones** para confirmar la temporización.
5. Edita el comando en la sección **Línea Crontab** y copia la línea completa para pegarla en tu crontab.
6. Pulsa **Enlace para compartir** para copiar una URL que precarga la expresión.

### ¿Cuál es el formato de una expresión cron?

Una expresión cron estándar consta de **5 campos** separados por espacios:

| Campo | Rango | Caracteres especiales |
| --- | --- | --- |
| Minuto | `0–59` | `* , - /` |
| Hora | `0–23` | `* , - /` |
| Día del mes | `1–31` | `* , - /` |
| Mes | `1–12` | `* , - /` |
| Día de la semana | `0–7` (0 y 7 = domingo) | `* , - /` |

### Caracteres especiales

- `*` — coincide con **cualquier valor**. `* * * * *` se ejecuta cada minuto.
- `,` — **lista** de valores. `1,15 * * * *` se ejecuta en el minuto 1 y en el minuto 15.
- `-` — **rango** de valores. `0 9-17 * * *` se ejecuta cada hora de 9 a 17.
- `/` — intervalo de **paso**. `*/10 * * * *` se ejecuta cada 10 minutos. `0 */6 * * *` se ejecuta cada 6 horas.

### Cadenas de atajo

Algunas implementaciones de cron soportan estas cadenas de atajo (no todos los
sistemas — consulta tu documentación):

| Atajo | Equivalente | Descripción |
| --- | --- | --- |
| `@yearly` | `0 0 1 1 *` | Una vez al año (1 de enero) |
| `@monthly` | `0 0 1 * *` | Una vez al mes (día 1) |
| `@weekly` | `0 0 * * 0` | Una vez a la semana (domingo) |
| `@daily` | `0 0 * * *` | Una vez al día (medianoche) |
| `@hourly` | `0 * * * *` | Una vez a la hora (:00) |
| `@reboot` | — | Ejecutar una vez al iniciar el sistema |

### Patrones comunes

| Expresión | Descripción |
| --- | --- |
| `*/5 * * * *` | Cada 5 minutos |
| `0 */2 * * *` | Cada 2 horas en punto |
| `0 9,17 * * 1-5` | Días laborables a las 9:00 y 17:00 |
| `30 2 * * 0` | Domingos a las 2:30 |
| `0 0 1,15 * *` | El 1 y el 15 de cada mes a medianoche |
| `0 4 * * 6` | Sábados a las 4:00 (ventana de mantenimiento) |
| `0 0 1 1,4,7,10 *` | Trimestral (primer día de ene, abr, jul, oct) |

### ¿Mis datos son privados?

Todo el análisis de expresiones y el cálculo de ejecuciones se realiza
íntegramente en tu navegador. Ningún dato de cron se transmite a ningún
servidor. El enlace compartible solo codifica la expresión en los parámetros
de la URL.

### Referencia de comandos Linux

Comandos esenciales de crontab para gestionar tareas programadas:

#### Ver crontab actual

```bash
crontab -l
```

**Salida — Tu crontab**

```text
# Backup every day at 3 AM
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
# Cleanup temp files weekly
0 0 * * 0 find /tmp -mtime +7 -delete
```

#### Editar crontab

```bash
crontab -e
```

**Salida — Resultado de edición de crontab**

```text
# Opens your crontab in $EDITOR (nano, vim, etc.)
# Save and exit to install the new crontab
```

#### Instalar crontab desde un archivo

```bash
echo "0 3 * * * /usr/local/bin/backup.sh" | crontab -
```

**Salida — Resultado de instalación**

```text
# Replaces entire crontab with the piped content
# WARNING: This overwrites all existing entries
```

#### Añadir tarea al crontab existente

```bash
(crontab -l 2>/dev/null; echo "*/5 * * * * /usr/local/bin/monitor.sh") | crontab -
```

**Salida — Resultado de añadir**

```text
# Safely appends without removing existing jobs
```

#### Ver crontab de otro usuario (root)

```bash
sudo crontab -u www-data -l
```

**Salida — Crontab de www-data**

```text
0 */6 * * * /var/www/scripts/cache-warm.sh
```

#### Tareas cron del sistema

```bash
ls -la /etc/cron.d/ /etc/cron.daily/ /etc/cron.hourly/ /etc/cron.weekly/ /etc/cron.monthly/
```

**Salida — Directorios cron del sistema**

```text
/etc/cron.d/:
e2scrub_all  geoipupdate  sysstat
/etc/cron.daily/:
apt-compat  dpkg  logrotate  man-db  sysstat
/etc/cron.hourly/:
(empty)
/etc/cron.weekly/:
man-db
/etc/cron.monthly/:
(empty)
```

### Notas importantes

- **Zona horaria** — cron usa la zona horaria del sistema por defecto. Compruébala con `timedatectl` o establece la variable de entorno `TZ` al principio de tu crontab.
- **PATH** — cron se ejecuta con un `PATH` mínimo. Usa siempre rutas absolutas para los comandos (`/usr/bin/python3`, no `python3`).
- **Salida** — por defecto, cron envía la salida por correo al usuario. Redirige stdout y stderr a un archivo: `>> /var/log/myjob.log 2>&1`.
- **Día del mes + Día de la semana** — cuando ambos campos están definidos (no `*`), cron usa lógica **OR**: la tarea se ejecuta si se cumple *cualquiera* de las condiciones.
- **Depuración** — consulta `/var/log/syslog` (Debian/Ubuntu) o `/var/log/cron` (RHEL/CentOS) para los registros de ejecución.

