¿Cómo ejecuto un trabajo cron en una Mac?

12

¿Cómo puedo hacer que mi Mac (que ejecuta el SO más reciente) realice una tarea automáticamente una vez al día? Por ejemplo, me gustaría que descargue automáticamente una copia de este libro de texto de geometría algebraica de código abierto una vez al día. Tengo la sensación de que alguna combinación de wget y cron debería funcionar, pero, después de buscar en Google y leer la documentación de cron, simplemente no pude hacerlo funcionar correctamente.

David Zureick-Brown
fuente
2
Le sugiero que no use Crontab y en su lugar aprenda a usar Launchd como ya se sugirió.
Martin Marconcini

Respuestas:

9

Creo que en OS X deberías usar launchctlpara "trabajos cron".
Pero de lo contrario, su tarea debería ser fácil de hacer con un cronjob
sudo crontab -e
55 23 * * * wget http://www.math.columbia.edu/algebraic_geometry/stacks-git/book.pdf

Esto debería ejecutarse todos los días a las 23:55

Actualizar

Debe especificar la ubicación de salida de WGET con -O /path/to/file

deiga
fuente
2
Si usa launchd, consulte apple.stackexchange.com/questions/3030/…
2
No necesariamente necesitas sudo. Los usuarios individuales pueden tener sus propios crontabs
Doug Harris
6

El cron daemon se puede activar con un simple:

sudo touch /private/etc/crontab

Entonces es recomendable ingresar la ruta completa de su / usr / local / bin / wget (o donde sea que viva). Cron no sabe de $ PATH de su usuario. Espero eso ayude.


fuente
5

Puede usar Cronnix, que es una interfaz gráfica gratuita para cron:

http://www.macupdate.com/app/mac/7486/cronnix/

nuc
fuente
1
cronnix ha sido descontinuado oficialmente aguas arriba. Puede dejar de funcionar correctamente (o en absoluto) en versiones recientes de macOS.
Andrii Abramov
4

Si encuentra que la sintaxis de la línea de comando (etc.) es demasiado confusa / arcana, puede buscar en la herramienta GUI para ver / editar / crear estos trabajos.

En el pasado, he usado Lingon , que ahora también está disponible en la Mac App Store. No necesito usarlo muy a menudo, ¡pero es muy útil cuando lo hago!

Robsoft
fuente
1

Una solución más elegante (que cron) es usar notificaciones iCal + Applescript.

Primero, inicie el Editor AppleScript (ubicado en / Aplicación / Utilidades) y pegue el siguiente código:

set the destination_file to ("~/Downloads/book.pdf")

set the contentLink to "http://www.math.columbia.edu/algebraic_geometry/stacks-git/book.pdf"

tell application "URL Access Scripting"
    download contentLink to destination_file replacing yes
end tell

Guarde el script y salga del editor de AppleScript.

Abra su iCal y cree un nuevo evento para hoy, establezca la hora que desee, seleccione "repetir: Todos los días" y como alarma "Ejecutar script" y seleccione su applecript.

Si desea recibir una notificación para cada descarga, puede agregar otra alarma con un "Mensaje con sonido", "en fecha".

nuc
fuente
1

Recomiendo macarrones . Su ventaja es que cuando configura un trabajo para que se ejecute una vez al día, se ejecuta cada vez que su computadora está encendida, independientemente de la hora. Por lo tanto, no perderá un trabajo porque la computadora estaba apagada a la hora especificada.

Macaroni es una herramienta que maneja el mantenimiento regular de Mac OS X, incluido el proceso de reparación de privilegios de Mac OS X, así como el mantenimiento al estilo Unix. Puede hacerlo usted mismo, pero ¿no tiene cosas más interesantes que hacer con su tiempo?

amorfis
fuente