Comment puis-je configurer mon ordinateur pour exécuter un AppleScript à un moment précis? Avertissement: sans utiliser iCal

11

Depuis la mise à niveau vers Lion, j'ai constaté une baisse de productivité en termes d'utilisation d'iCal. En conséquence, j'essaie des alternatives telles que BusyCal. L'application semble géniale, mais je ne peux pas définir une alarme pour exécuter un script comme je le pouvais dans iCal.

Par conséquent, je veux devenir indépendant d'iCal et faire fonctionner un AppleScript tous les jours sans avoir à continuer à faire fonctionner iCal. Une idée de comment faire ça?

finiteloop
la source

Réponses:

13

Vous pouvez exécuter un cronjob à l'aide de crontab.
Donc, fondamentalement, pour exécuter un cronjob, vous devrez taper nano ~/crontabTerminal. Cela va créer un nouveau fichier appelé "crontab" dans votre dossier personnel et ouvrir un simple éditeur de texte dans Terminal. Type:

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

Cela exécutera un AppleScript nommé "theScriptToBeExecuted.applescript" situé sur votre bureau, toutes les minutes. Les cinq "*" avant la osascriptcommande spécifient l'heure. Voici un tableau pour vous montrer ce que chaque champ représente:

* * * * * commande à exécuter
- - - - -
| | | | |
| | | | + ----- jour de la semaine (0 - 6) (dimanche = 0)
| | | + ------- mois (1-12)
| | + --------- jour du mois (1-31)
| + ----------- heure (0 - 23)
+ ------------- min (0 - 59)

Donc, pour exécuter la même commande à une minute après minuit (00:01) de chaque jour du mois, de chaque jour de la semaine, tapez ceci dans le fichier:

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

Si vous avez besoin de plus d'informations, consultez cet article sur cron.

Pour enregistrer le fichier sur lequel vous travaillez, tapez Control+ X(quitte), puis Y(indique à Terminal que vous souhaitez enregistrer le fichier), puis Entertapez maintenant à l'invite cron ~/crontabCela indique à cron qu'il doit consulter le fichier crontab, si votre fichier est nommé "crontab" dans votre dossier personnel.

Une autre alternative est Cronnix C'est une interface graphique pour crontab.

Script Timer est similaire, mais il exécute les AppleScripts spécifiés à des moments spécifiés. C'est un peu plus facile à utiliser, mais cela coûte 12 $. Je recommanderais simplement d'utiliser Cronnix (gratuit) ou crontab (également gratuit!)

daviesgeek
la source
comment utiliser cet utilitaire pour faire ce que j'essaie de faire?
finiteloop
1
Voulez-vous ajouter la condition: sans utiliser de terminal?
GEdgar
Non, je suis d'accord avec l'utilisation du terminal. Je voudrais ajouter la condition: sans passer beaucoup de temps à apprendre un utilitaire de ligne de commande.
finiteloop
@segfault Désolé, je l'ai tapé et j'ai posté la réponse avant d'avoir fini.
daviesgeek
@segfault NP! Heureux de vous aider!
daviesgeek
2

Dans les versions récentes d'OS X launchdest préférable cron. Voici un extrait de man crontabsous Mavericks:

Remarque Darwin: Bien que cron (8) et crontab (5) soient officiellement pris en charge sous Darwin, leurs fonctionnalités ont été absorbées dans launchd (8), qui offre un moyen plus flexible d'exécuter automatiquement les commandes.

Vous pouvez contrôler en launchdutilisant le intégré, launchctlmais beaucoup de gens (y compris moi) utilisent une interface graphique appelée Lingon .

MISE À JOUR: J'utilise maintenant LaunchControl au lieu de Lingon. C'est beaucoup plus puissant, bien que l'interface soit plus compliquée.

kuzzooroo
la source