¿Cómo configuro un trabajo cron en OS X para ejecutar un comando curl a una hora específica todos los días?

20

Tengo un comando CURL que quiero ejecutar todos los días a las 3 de la madrugada, pero no estoy seguro de cómo configurarlo y las guías son raras.

Suponga que tengo mucha experiencia en terminales / bash, pero nunca antes configuré un cron.

¿Es posible que el trabajo cron reactive mi computadora, incluso si está inactiva y la tapa está cerrada (macbook pro), solo para ejecutar este comando curl y luego volverlo a suspender?

¿Cómo lo configuro de cualquier manera?

marcamillion
fuente

Respuestas:

22

Comience ejecutando el comando:

crontab -e

Esto abrirá el crontab para su usuario en un editor de texto. Cron usa una notación específica para trabajos programados. El siguiente formato muestra los campos para una entrada crontab de usuario (que deben estar separados por pestañas).

min  hour  day_of_month  month  day_of_week  command

Para programar un comando curl para que se ejecute a las 3am diariamente, puede insertar la línea:

0  3  *  *  *  curl args...

Observe cómo los minutos y la hora corresponden a las 3 a.m. (nota al margen: cron usa el formato de 24 horas, no am o pm). Los asteriscos que siguen significan todos los días del mes, todos los meses, todos los días de la semana.

Cron no podrá reactivar su computadora desde el modo de suspensión, pero es posible que esta publicación sea útil para crontab para despertar a osx del modo de suspensión

paso diametral
fuente
1
Cuando lo hago crontab -e, veo esto en mi terminal: $ crontab -e crontab: no changes made to crontaby luego abre mi editor de texto con el archivo crontab.some-random-stringde la carpeta /tmp. Una vez que edito eso y lo guardo, no pasa nada en mi terminal. Si lo hago crontab -l, el trabajo que acabo de ingresar no aparece. Luego, si lo hago crontab -enuevamente, se abre otro espacio en blanco crontab.some-random-string. También probé el primer crontab que guardé configurando el tiempo en 2 minutos desde que lo guardé y el cron nunca se ejecutó. ¿Qué podría estar pasando?
marcamillion
¿Qué editor de texto se abre cuando ejecuta 'crontab -e'?
diametralpitch
Mi único defecto, atom. Eso es lo que se inicia cuando abro algo para editarlo en mi terminal. Esto es lo que tengo en mi ~/.bash_profile, export EDITOR='open -a "/Applications/Atom.app"'.
marcamillion
Hmm, si ejecuta el átomo desde la línea de comando por sí solo, espera a que el átomo salga antes de solicitar otro comando (si no, puede probar con un editor de texto diferente).
Adam Luchjenbroers el
@AdamLuchjenbroers No estoy seguro de entender completamente tu pregunta. Yo uso atom para toda mi edición de código. Entonces, si quiero editar cualquier archivo, solo lo hago atom .dentro del directorio o atom <filepath>.
marcamillion
0

si te gusta hacerlo en la GUI te puedo recomendar CronniX de roaringapps https://roaringapps.com/app/cronnix

konqui
fuente
Gracias por ese consejo ... pero creo que preferiría hacerlo manualmente en la línea de comando o mediante el editor de texto para aprender :)
marcamillion