Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
linux:cron:cron [02/10/2011 04:01] – [Uso elaborado] matelinux:cron:cron [09/02/2026 02:23] (actual) – [Uso "elaborado"] mate
Línia 1: Línia 1:
-=cron+=cron / crontab
 ==Conceptos básicos ==Conceptos básicos
 +Cron se ejecuta en el background, revisa cada minuto la tabla de tareas crontab **/etc/crontab** o en **/var/spool/cron**
 +
 comprobar si está en ejecución: comprobar si está en ejecución:
 <code>$ ps -ef | grep crond</code> <code>$ ps -ef | grep crond</code>
Línia 17: Línia 19:
  
 ==Uso "elaborado" ==Uso "elaborado"
-modificar /etc/crontab+modificar ''/etc/crontab''
 las lineas que realmente ejecutan los "trabajos" son del estilo: las lineas que realmente ejecutan los "trabajos" son del estilo:
-<code>* * * * * <usuario> <comando> [ /dev/null 2>&1 ]</code>+<code>* * * * * <usuario> <comando>/dev/null 2>&1 ]</code>
  
-Donde los primeros asteríscos corresponden, de izquierda derecha: +  * indicar rangos: 1-3 
-  * minuto +  * indicar listas: 1,3,5,7 
-  * hora +  * indicar fracciones: 
-  * día del mes +    * */15 -> cada 15 minutos (0,15,30,45) 
-  * mes +    * 1-59/3 -> cada 3 minutos, empezando por el minuto 1... 1,4,7,10... Diferente de */3 (0,3,6,9,12...) 
-  * dia de la semana+    * 1-10/2 -> los 1,3,5,7,9 (empieza en el 1, saltos de 2) 
 +    * 2/4 -> 2,6,10,14  ??? 
 +    indicando el rango de minutos, conseguimos desfasar de las ejecuciones de fracciones más simples 
 +  * En algunas distribuciones, se pueden indicar interrogantes -> asumirá el minuto/hora/dia en el que fue iniciado el cron y a partir de ese momento siempre será ese. 
 +  * *L* : indica "último" (last) 
 +    * en el caso del día de la semana, sería el último X del mes 
 +    * en el caso del día del mes, sería el último día del mes 
 +  * *W* : día de la semana (weekday) 
 +    * usado en el día del mes, ejecuta la tarea el día laboral más cercano. 
 +    * ejemplo: 15W, si el 15 es sábado, lo ejecuta el viernes 14, si es domingo lo ejecuta el lunes 16 
 +  * *#* : usar en campo dia de la semana 
 +    * permite ejecutar un determinado día de la semana de una semana concreta 
 +    * ejempo: 5#3 ejecutaría el viernes de la tercera semana 
 +  * *H* : hashed 
 +    * repite en algún momento indeterminado, pero invariable a partir de entonces 
 +  * [[https://en.wikipedia.org/wiki/Cron#Format]]
  
-Un asterisco indica "cualquiera",  +<code> 
-  * Se puede indicar rangos: 1-3 + ------------- minutos (0 - 59) 
-  * Se pueden indicar listas: 1,3,5,7 + | ----------- horas (0 - 23) 
-  * Se pueden indicar fracciones: */15 ==cada 15 minutos, 1-10/2 =los 1,3,5,7,(empieza en el 1, a saltos de 2)2/4 =2,6,10,14+ | | --------- dia del mes (1 - 31) 
 + | | | ------- mes (- 12) 
 + | | | | ----- dia de la semana (0 - 6) (domingo=0lunes=1... sabado=6) 
 + | | | | | 
 + * * * * * comando a ejecutar 
 + 
 + 
 +* significa todos los valores validos 
 +/ permite definir una repeticion 
 +- permite definir un rango 
 +permite definir varios valores 
 +</code> 
 + 
 +otros formatos (special strings): 
 +  * @reboot -> Run once, at startup. 
 +  @yearly -Run once a year"0 0 1 *". 
 +  * @annually -> (same as @yearly) 
 +  * @monthly -> Run once a month, "0 0 * *". 
 +  * @weekly -> Run once a week"0 0 * * 0". 
 +  * @daily -> Run once day"0 0 * * *". 
 +  * @midnight -(same as @daily) 
 +  * @hourly -> Run once an hour"0 * * * *".
  
 ==personalizado ==personalizado
Línia 42: Línia 80:
 </code> </code>
 No sirve modificar el fichero original, hay que añadirlo cuando toque. No sirve modificar el fichero original, hay que añadirlo cuando toque.
 +
 El formato del crontab es ligeramente diferente, no se ha de especificar el usuario. El formato del crontab es ligeramente diferente, no se ha de especificar el usuario.
 +
 +permite una linea del tipo ''MAILTO="direccion@correoelectronico.es"''
  
 El fichero se guarda, a buen recaudo, en ''/var/spool/cron/crontabs'' (en una debian, al menos) El fichero se guarda, a buen recaudo, en ''/var/spool/cron/crontabs'' (en una debian, al menos)
 +
 +== ejemplos
 +  * ejecuta el trabajo a las 00:00, 06:00, 12:00, 18:00
 +<code bash>
 +0 0,6,12,18 * * * /comando
 +</code>
 +  * ejecuta el trabajo a las 00:00, 06:00, 12:00, 18:00 pero solo los días laborables:
 +<code bash>
 +0 0,6,12,18 * * 1-5 /comando
 +</code>
 +  * ejecuta el trabajo a las 00:00, 06:00, de 9:00 a 15:00 cada hora, 18:00 pero solo los días laborables:
 +<code bash>
 +0 0,6,9-15,18 * * 1-5 /comando
 +</code>
 +  * ejecuta el trabajo cada 6 horas (basicamente, cuando la división da 0 de resto) a la hora en punto (el 0 de los minutos):
 +<code bash>
 +0 */6 * * * /comando
 +</code>
 +  * ejecuta el trabajo cada 5 minutos:
 +<code bash>
 +*/5 * * * * /comando
 +</code>
 +  * ejecuta el trabajo todos los días pares a las 12:00:
 +<code bash>
 +0 12 */2 * * /comando
 +</code>
 +
 ==seguridad ==seguridad
 se puede controlar quien usa y quien no el servicio CRON en los archivos: se puede controlar quien usa y quien no el servicio CRON en los archivos:
Línia 58: Línia 126:
  
 == más info == más info
-{{:linux:cron:cron_on_linux.pdf|Cron on Linux}} +  * [[https://help.ubuntu.com/community/CronHowto]] 
 +  * [[https://www.freebsd.org/cgi/man.cgi?crontab%285%29]] 
 +  * [[https://blog.desdelinux.net/cron-crontab-explicados/]]
  
-{{tag>linux}} 
  • linux/cron/cron.1317553270.txt.gz
  • Darrera modificació: 15/11/2011 01:59
  • (edició externa)