Como posso configurar meu computador para executar um AppleScript em um horário específico? Advertência: sem usar o iCal

11

Desde a atualização para o Lion, eu tenho visto uma pequena diminuição de produtividade quando se trata de usar o iCal. Como resultado, estou tentando alternativas como o BusyCal. O aplicativo parece ótimo, no entanto, não consigo definir um alarme para executar um script como pude no iCal.

Portanto, quero me tornar independente do iCal e ter um AppleScript sendo executado todos os dias sem precisar manter o iCal em execução. Alguma idéia de como fazer isso?

finiteloop
fonte

Respostas:

13

Você pode executar um cronjob usando o crontab.
Então, basicamente, para executar um cronjob, você precisará digitar nano ~/crontabTerminal. Isso criará um novo arquivo chamado "crontab" na sua pasta pessoal e abrirá um editor de texto simples no Terminal. Tipo:

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

Isso executará um AppleScript chamado "theScriptToBeExecuted.applescript" localizado na área de trabalho a cada minuto. Os cinco "*" antes do osascriptcomando especificam a hora. Aqui está uma tabela para mostrar o que cada campo significa:

* * * * * comando a ser executado
- - - - -
| | | | |
| | | | + ----- dia da semana (0 - 6) (domingo = 0)
| | | + ------- mês (1-12)
| | + --------- dia do mês (1-31)
| + ----------- hora (0 - 23)
+ ------------- min (0-59)

Portanto, para executar o mesmo comando em um minuto depois da meia-noite (00:01) de todos os dias do mês, de todos os dias da semana, digite isto no arquivo:

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

Se você precisar de mais informações, consulte este artigo no cron.

Para salvar o arquivo em que você está trabalhando, digite Control+ X(sai) e, em seguida Y(informa ao Terminal que você deseja salvar o arquivo) e, em seguida, Enterdigite agora no prompt cron ~/crontabIsso informa ao cron que ele deve procurar o arquivo crontab, se o seu arquivo for nomeado "crontab" na sua pasta pessoal.

Outra alternativa é o Cronnix. É uma interface gráfica para o crontab.

O Temporizador de scripts é semelhante, mas executa AppleScripts especificados em horários especificados. É um pouco mais fácil de usar, mas custa US $ 12. Eu recomendaria apenas usar o Cronnix (grátis) ou o crontab (também grátis!)

daviesgeek
fonte
como eu usaria esse utilitário para fazer o que estou tentando fazer?
Finiteloop 13/09/11
1
Deseja adicionar a condição: sem usar o terminal?
precisa saber é o seguinte
Não, eu estou bem em usar o terminal. Eu gostaria de adicionar a condição: sem gastar muito tempo aprendendo um utilitário de linha de comando.
Finiteloop 13/09/11
@segfault Desculpe, eu estava digitando e postei a resposta antes de terminar.
daviesgeek
@segfault NP! Feliz em ajudar!
daviesgeek 13/09/11
2

Nas versões recentes do OS X launchdé preferido cron. Aqui está um trecho de man crontabMavericks:

Nota do Darwin: Embora o cron (8) e o crontab (5) sejam oficialmente suportados pelo Darwin, sua funcionalidade foi absorvida pelo launchd (8), que fornece uma maneira mais flexível de executar comandos automaticamente.

Você pode controlar launchdusando o built-in, launchctlmas muitas pessoas (inclusive eu) usam uma GUI chamada Lingon .

ATUALIZAÇÃO: Agora eu uso o LaunchControl em vez do Lingon. É muito mais poderoso, embora a interface seja mais complicada.

kuzzooroo
fonte