# 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**
Minuto0-59`, - * /`
Hora0-23`, - * /`
Día del mes1-31`, - * ? / L W`
Mes1-12`, - * /`
Día de la semana0-6`, - * ? / L #`
### Ejemplos
**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)
### Cadenas especiales
**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 crontab
**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)
### Caracteres especiales
**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.
### Para más información - [Devhints](https://devhints.io/cron) (devhints.io) - [Crontab Generator](https://crontab-generator.org/) (crontab-generator.org) - [Crontab guru](https://crontab.guru/) (crontab.guru)