¿Cómo puedo configurar mi computadora para ejecutar un AppleScript en un momento específico? Advertencia: sin usar iCal

11

Desde la actualización a Lion, he visto una ligera disminución de la productividad cuando se trata de usar iCal. Como resultado, estoy probando alternativas como BusyCal. La aplicación parece genial, sin embargo, no puedo configurar una alarma para ejecutar un script como podría en iCal.

Por lo tanto, quiero independizarme de iCal y hacer que AppleScript se ejecute todos los días sin tener que mantener iCal en funcionamiento. ¿Alguna idea de cómo hacer esto?

finiteloop
fuente

Respuestas:

13

Puede ejecutar un cronjob usando crontab.
Básicamente, para ejecutar un cronjob, necesitará escribir nano ~/crontabTerminal. Esto creará un nuevo archivo llamado "crontab" en su carpeta de inicio y abrirá un editor de texto simple en la Terminal. Tipo:

* * * * * osascript ~/Desktop/theScriptToBeExecuted.applescript

Esto ejecutará un AppleScript llamado "theScriptToBeExecuted.applescript" ubicado en su escritorio, cada minuto. Los cinco "*" antes del osascriptcomando especifican la hora. Aquí hay una tabla para mostrarle lo que representa cada campo:

* * * * * comando a ejecutar
- - - - -
El | El | El | El | El |
El | El | El | El | + ----- día de la semana (0 - 6) (domingo = 0)
El | El | El | + ------- mes (1-12)
El | El | + --------- día del mes (1 - 31)
El | + ----------- hora (0-23)
+ ------------- min (0-59)

Entonces, para ejecutar el mismo comando un minuto después de la medianoche (00:01) de todos los días del mes, de todos los días de la semana, escriba esto en el archivo:

1 0 * * * osascript ~/Desktop/theScriptToBeExecuted.applescript

Si necesita más información, consulte este artículo en cron.

Para guardar el archivo en el que está trabajando, escriba Control+ X(salidas), luego Y(le dice a Terminal que desea guardar el archivo), luego Enterescriba ahora en el indicador cron ~/crontabEsto le dice a cron que debería estar mirando el archivo crontab, si su archivo se llama "crontab" en su carpeta de inicio.

Otra alternativa es Cronnix. Es una GUI para crontab.

Script Timer es similar, pero ejecuta AppleScripts específicos en momentos específicos. Es un poco más fácil de usar, pero cuesta $ 12. Recomendaría simplemente ir con Cronnix (gratis) o crontab (¡también gratis!)

daviesgeek
fuente
¿Cómo usaría esa utilidad para hacer lo que estoy tratando de hacer?
finiteloop
1
¿Desea agregar la condición: sin usar terminal?
GEdgar
No, estoy bien con el uso de la terminal. Me gustaría agregar la condición: sin perder mucho tiempo aprendiendo una utilidad de línea de comandos.
finiteloop
@segfault Lo siento, lo estaba escribiendo y publiqué la respuesta antes de terminar.
daviesgeek
@segfault NP! ¡Encantado de ayudar!
daviesgeek
2

En versiones recientes de OS X launchdse prefiere cron. Aquí hay un extracto de man crontabMavericks:

Nota de Darwin: Aunque cron (8) y crontab (5) son oficialmente compatibles con Darwin, su funcionalidad ha sido absorbida por launchd (8), que proporciona una forma más flexible de ejecutar comandos automáticamente.

Puede controlar el launchduso del incorporado, launchctlpero muchas personas (incluido yo) usan una GUI llamada Lingon .

ACTUALIZACIÓN: ahora uso LaunchControl en lugar de Lingon. Es mucho más potente, aunque la interfaz es más complicada.

kuzzooroo
fuente