2009-02-25 26 views
187

Estoy buscando agregar una entrada crontab para ejecutar un script cada 30 minutos, en la hora y 30 minutos después de la hora o algo cercano. Tengo el siguiente, pero no parece funcionar en 0.¿Cómo obtendré un trabajo cron para que se ejecute cada 30 minutos?

*/30 * * * * 

Qué cadena de qué tengo que usar?

El cron se ejecuta en OSX.

+0

¿Ha tenido éxito en hacer funcionar su crontab? Su problema puede no ser el crontab, pero hacer que se use. – Eddie

+0

Se están ejecutando otras 2 secuencias de comandos, una por minuto. –

+1

Estoy esperando a ver si funciona alguna de las siguientes respuestas, solo tengo que esperar hasta que pasen los siguientes 30 minutos ... en 3 minutos. –

Respuesta

429

Do:

0,30 * * * * your_command 
+1

¡Funciona muy bien! En CentOS crontab, tuve que hacer algo como '0,30 * * * * root your_command' donde root sería el usuario que estoy usando. – prograhammer

+1

¿Qué tal esto '0/30 * * * * your_command'? – ihue

+0

@prograhammer - ¿Esta línea era parte del crontab de una raíz o el crontab de algún otro usuario? –

69

Prueba esto:

0,30 * * * * your command goes here 

De acuerdo con el funcionario de Mac OS X crontab(5) manpage, se admite la sintaxis /. Por lo tanto, para descubrir por qué no estaba funcionando para usted, deberá consultar los registros de cron. En esos registros, debería encontrar un mensaje de error claro.

Nota: Mac OS X parece usar Vixie Cron, al igual que Linux y BSD.

+0

Siempre he usado */30 con éxito, pero no recuerdo una aplicación mía donde era demasiado crítica si solo funcionaba una vez por hora, así que no creo Alguna vez lo he comprobado. –

+2

@ Adam Hawes: También he usado */xx con éxito en el pasado, pero en Linux y otros UNIX. Personalmente no he probado Mac OSX. La pregunta original no decía qué sistema operativo. Algunos UNIX anteriores no son compatibles con */xx – Eddie

+0

Tu respuesta también funcionó, pero Vlad tiene menos representantes, así que le di los puntos. –

4

Mencionas que estás usando OS X- He usado cronnix en el pasado. No es tan geek como editarlo tú mismo, pero me ayudó a saber qué son las columnas en un santiamén. Solo un pensamiento.

+0

Esto podría ser útil también. –

+0

@Allyn: ahora es un enlace muerto. Esto se parece al nuevo: https://roaringapps.com/app/cronnix –

8

Si su tarea cron se ejecuta solo en Mac OS X, es posible que desee utilizar launchd en su lugar.

De Scheduling Timed Jobs (official Apple docs):

Nota: A pesar de que aún se admite, cron no es una solución recomendada. Ha quedado en desuso en favor de launchd.

Puede encontrar información adicional (como launchd Wikipedia page) con una búsqueda web sencilla.

54

crontab no entiende "intervalos", que sólo entiende "programa" horas

válidos: 0-23 - minutos válidos: 0-59

ejemplo # 1

30 * * * * your_command

esto significa "ejecutar cuando el minuto de cada hora es 30" (se ejecutará a las: 1:30, 2:30, 3:30, etc.)

ejemplo # 2

*/30 * * * * your_command

esto significa "run cuando el minuto de cada hora es uniformemente divisible por 30" (iría a 1:30, 2:00, 2 : 30, 3:00, etc.)

ejemplo # 3

0,30 * * * * your_command

esto significa "run cuando el minuto de cada hora es 0 o 30" (iría en: 1:30, 2:00, 2:30, 3:00, etc)

Es otra manera de lograr los mismos resultados que el ejemplo # 2

ejemplo # 4

19 * * * * your_command

esto significa "run cuando el minuto de cada hora es 19 "(iría en: 01:19, 02:19, 03:19, etc)

ejemplo # 5

*/19 * * * * your_command

esto significa" run cuando el minuto de cada hora es uniformemente divisible por 19 "(iría en: 01:19, 01:38, 01:57, 02:19, 02:38, 02:57, etc.)

nota: varios refinamientos se han hecho a esta publicación por varios usuarios, incluido el autor

Cuestiones relacionadas