# cron Para editar el `cron`, utilizaremos `crontab`. ### Formato ``` Min Hour Day Mon Weekday ┬ ┬ ┬ ┬ ┬ │ │ │ │ └─ Día de la semana (0=Dom .. 6=Sáb) │ │ │ └────── Mes (1..12) │ │ └─────────── Día del mes (1..31) │ └──────────────── Hora (0..23) └───────────────────── Minuto (0..59) ```
**Campo** | **Rango** | **Caracteres especiales** |
Minuto | 0-59 | `, - * /` |
Hora | 0-23 | `, - * /` |
Día del mes | 1-31 | `, - * ? / L W` |
Mes | 1-12 | `, - * /` |
Día de la semana | 0-6 | `, - * ? / L #` |
**Formato** | **Resultado** |
`*/15 * * * *` | Cada 15 minutos |
`0 * * * *` | Cada hora |
`0 */2 * * *` | Cada 2 horas |
`15 2 * * *` | A las 2:15AM de cada día |
`15 2 * * ?` | A las 2:15AM de cada día |
`10 9 * * 5` | A las 9:10AM de cada viernes |
`0 0 * * 0` | A media noche de cada domingo |
`15 2 * * 1L` | A las 2:15am del último lunes de cada mes |
`15 0 * * 4#2` | A las 00:15am del segundo martes de cada mes |
`0 0 1 * *` | Cada primero de mes (mensualmente) |
`0 0 1 1 *` | Cada primero de enero (anualmente) |
`@reboot` | Cada reinicio (no estándar) |
**Formato** | **Resultado** |
---|---|
`@reboot` | Se ejecuta una vez, al arranque del sistema (no estándar) |
`@yearly` | Se ejecuta una vez cada año, "`0 0 1 1 *`" (no estándar) |
`@annually` | (lo mismo que `@yearly`) (no estándar) |
`@monthly` | Se ejecuta una vez cada mes, "`0 0 1 * *`" (no estándar) |
`@weekly` | Se ejecuta una vez cada semana, "`0 0 * * 0`" (no estándar) |
`@daily` | Se ejecuta una vez cada día "`0 0 * * *`" (no estándar) |
`@midnight` | (lo mismo que `@daily`) (no estándar) |
`@hourly` | Se ejecuta una vez cada hora, "`0 * * * *`" (no estándar) |
**Comando** | **Resultado** |
---|---|
`crontab -e` | Edita o crea un fichero crontab file si no existe. |
`crontab -l` | Muestra el fichero crontab. |
`crontab -r` | Elimina el fichero crontab. |
`crontab -v` | Muestra la última vez que editaste tu fichero crontab. (no estándar) |
**Carácter** | **Observaciones** |
---|---|
`Asterico (*)` | Coincide con todos los valores del campo o cualquier valor posible. |
`Guión (-)` | Se usa para definir un rango. P.ej.: 1-5 en el 5º campo (día de la semana) cada semana de lunes a viernes. |
`Barra (/)` | 1er campo (minuto) /15 significa cada quince minutos o incrementos del rango. |
`Coma (,)` | Se usa para separar elementos. P.ej: 2,6,8 en el 2º campo (hora) se ejecuta a las 2am, 6am y 8am. |
`L` | Sólo se puede utilizar para el campo día del mes o día de la semana, 2L en día de la semana indica el último martes de cada mes. |
`Almohadilla (#)` | Sólo se puede utilizar para el campo día de la semana que puede seguir por un rango de 1 a 5. P.ej: 4#1 significa "el primer martes" de un mes determinado. |
`Interrogación (?)` | Se puede utilizar en lugar de '\*' y se usa para dia del mes y día de la semana. El uso está restringido al día del mes o día de la semana en una expresión cron. |