Как я могу настроить свой компьютер для запуска AppleScript в определенное время? Предупреждение: без использования iCal

11

После перехода на Lion я наблюдал плавное снижение производительности, когда дело доходит до использования iCal. В результате я пробую альтернативы, такие как BusyCal. Приложение выглядит великолепно, однако я не могу установить будильник для запуска скрипта, как в iCal.

Поэтому я хочу стать независимым от iCal и запускать AppleScript каждый день без необходимости поддерживать iCal. Есть идеи, как это сделать?

finiteloop
источник

Ответы:

13

Вы можете запустить cronjob, используя crontab.
В общем, чтобы запустить cronjob, вам нужно набрать nano ~/crontabв терминале. Это создаст новый файл с именем «crontab» в вашей домашней папке и откроет простой текстовый редактор в терминале. Тип:

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

Это будет запускать AppleScript с именем «theScriptToBeExecuted.applescript», расположенный на вашем рабочем столе, каждую минуту. Пять «*» перед osascriptкомандой указывают время. Вот таблица, чтобы показать вам, что означает каждое поле:

* * * * * команда для выполнения
- - - - -
| | | | |
| | | | + ----- день недели (0 - 6) (воскресенье = 0)
| | | + ------- месяц (1 - 12)
| | + --------- день месяца (1 - 31)
| + ----------- час (0 - 23)
+ ------------- мин. (0 - 59)

Чтобы запустить одну и ту же команду в одну минуту после полуночи (00:01) каждого дня месяца, каждого дня недели, введите в этом файле:

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

Если вам нужна дополнительная информация, посмотрите эту статью на cron.

Чтобы сохранить файл, над которым вы работаете, введите Control+ X(выход), затем Y(сообщает Terminal, что вы действительно хотите сохранить файл), затем Enterвведите в командной строке. cron ~/crontabЭто говорит cron, что он должен искать файл crontab, если ваш файл называется "crontab" в вашей домашней папке.

Другой альтернативой является Cronnix. Это графический интерфейс для crontab.

Таймер сценария аналогичен, но он запускает указанные AppleScripts в указанное время. Это немного проще в использовании, но стоит 12 долларов. Я бы порекомендовал просто пойти с Cronnix (бесплатно) или crontab (также бесплатно!)

daviesgeek
источник
Как я могу использовать эту утилиту, чтобы делать то, что я пытаюсь сделать?
Finiteloop
1
Вы хотите добавить условие: без использования терминала?
GEdgar
Нет, я в порядке с использованием терминала. Я хотел бы добавить условие: не тратя много времени на изучение утилиты командной строки.
конечная петля
@segfault Извините, я набрал его и опубликовал ответ до того, как закончил.
Дэвисджик
@segfault NP! Рад помочь!
daviesgeek
2

В последних версиях OS X launchdпредпочтительнее cron. Вот выдержка из man crontabпод Маверикс:

Примечание Дарвина: Хотя cron (8) и crontab (5) официально поддерживаются в Darwin, их функциональность была включена в launchd (8), который обеспечивает более гибкий способ автоматического выполнения команд.

Вы можете управлять launchdс помощью встроенного, launchctlно многие люди (включая меня) используют графический интерфейс под названием Lingon .

ОБНОВЛЕНИЕ: теперь я использую LaunchControl вместо Lingon . Это намного мощнее, хотя интерфейс более сложный.

kuzzooroo
источник