Jak mogę skonfigurować komputer, aby uruchamiał AppleScript w określonym czasie? Zastrzeżenie: bez korzystania z iCal

11

Od czasu przejścia na Lion zauważyłem niewielki spadek wydajności, jeśli chodzi o używanie iCal. W rezultacie próbuję alternatyw, takich jak BusyCal. Aplikacja wydaje się świetna, ale nie mogę ustawić alarmu, aby uruchomić skrypt, jak mogłem w iCal.

Dlatego chcę uniezależnić się od iCal i codziennie uruchamiać AppleScript bez konieczności ciągłego działania iCal. Wiesz, jak to zrobić?

finiteloop
źródło

Odpowiedzi:

13

Możesz uruchomić cronjob za pomocą crontab.
Zasadniczo, aby uruchomić cronjob, musisz wpisać nano ~/crontabTerminal. Spowoduje to utworzenie nowego pliku o nazwie „crontab” w folderze domowym i otwarcie prostego edytora tekstu w terminalu. Rodzaj:

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

Spowoduje to uruchomienie AppleScript o nazwie „theScriptToBeExecuted.applescript” znajdujący się na pulpicie, co minutę. Pięć „*” przed osascriptpoleceniem określa czas. Oto tabela pokazująca, co oznacza każde pole:

* * * * * polecenie do wykonania
- - - - -
| | | | |
| | | | + ----- dzień tygodnia (0–6) (niedziela = 0)
| | | + ------- miesiąc (1-12)
| | + --------- dzień miesiąca (1-31)
| + ----------- godzina (0-23)
+ ------------- min (0 - 59)

Aby więc uruchomić tę samą komendę minutę po północy (00:01) każdego dnia miesiąca i każdego dnia tygodnia, wpisz to w pliku:

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

Jeśli potrzebujesz więcej informacji, sprawdź ten artykuł na temat crona.

Aby zapisać plik, nad którym pracujesz, wpisz Control+ X(wychodzi), a następnie Y(mówi Terminalowi, że chcesz zapisać plik), a następnie Enterwpisz Teraz w wierszu poleceń cron ~/crontabTo mówi cronowi, że powinien patrzeć na plik crontab, jeśli plik ma nazwę „crontab” w folderze domowym.

Inną alternatywą jest Cronnix To GUI dla crontab.

Timer skryptów jest podobny, ale uruchamia określone skrypty AppleScript w określonych godzinach. Jest trochę łatwiejszy w użyciu, ale kosztuje 12 USD. Polecam po prostu Cronnix (bezpłatny) lub crontab (również bezpłatny!)

daviesgeek
źródło
jak miałbym użyć tego narzędzia do robienia tego, co próbuję zrobić?
finiteloop,
1
Czy chcesz dodać warunek: bez użycia terminala?
GEdgar
Nie, nie mam nic przeciwko korzystaniu z terminala. Chciałbym dodać warunek: bez poświęcania dużej ilości czasu na naukę narzędzia wiersza poleceń.
finiteloop,
@segfault Przepraszam, pisałem to i opublikowałem odpowiedź, zanim skończyłem.
daviesgeek,
@segfault NP! Miło, że mogłem pomóc!
daviesgeek
2

W najnowszych wersjach OS X launchdjest preferowany cron. Oto fragment spod man crontabMavericks:

Uwaga Darwin: Chociaż cron (8) i crontab (5) są oficjalnie wspierane przez Darwina, ich funkcjonalność została zaabsorbowana w launchd (8), który zapewnia bardziej elastyczny sposób automatycznego wykonywania poleceń.

Możesz kontrolować launchdza pomocą wbudowanego, launchctlale wiele osób (w tym ja) korzysta z GUI o nazwie Lingon .

AKTUALIZACJA: Teraz używam LaunchControl zamiast Lingon . Jest o wiele potężniejszy, choć interfejs jest bardziej skomplikowany.

kuzzooroo
źródło