OS X: Existe um programa agendador interno?

10

Gostaria de agendar uma tarefa para executar com parâmetros em uma hora / data específica no futuro.

O OS X inclui alguma dessas ferramentas (mesmo que seja da linha de comando)? Caso contrário, existem ferramentas gratuitas ou relativamente baratas para fazer isso?

glenneroo
fonte

Respostas:

14

Enquanto a resposta de KeithB está correto, na verdade, cron está sendo preterido em favor do OS X específico launchd .

Os comandos a serem executados launchdsão descritos em "listas" de propriedades da Apple, ou listas de propriedades, que na verdade são apenas arquivos XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.
com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>  
    <key>Label</key>
    <string>com.apple.periodic-daily</string>
    <key>ProgramArguments</key>
    <array> 
        <string>/usr/sbin/periodic</string>
        <string>daily</string>
    </array>
    <key>LowPriorityIO</key>
    <true/>
    <key>Nice</key>
    <integer>1</integer>
    <key>StartCalendarInterval</key>
    <dict>  
        <key>Hour</key>
        <integer>3</integer>
        <key>Minute</key>
        <integer>15</integer>
    </dict>
</dict>
</plist>

Dito isto, não é uma maneira muito amigável (nem semelhante a Mac) de agendar comandos para serem executados. Esta pergunta no SuperUser lista algumas alternativas da GUI, incluindo:

Lingon Screencap

Editor launchd ($ 5 Shareware)

Captura de tela

Josh
fonte
3
Não é uma caracterização justa que o launchd seja "proprietário". A Apple abriu o arquivo ansiosamente em launchd.macosforge.org e foi portado para o FreeBSD.
ohmantics
@ Ohmantics: Ok, ponto justo. "Específico" é uma descrição melhor?
10119 Josh
Perto o suficiente. :-) A Apple criou, mas espero que tenha uma adoção mais ampla em sistemas operacionais semelhantes ao BSD.
ohmantics
@calavera: Obrigado pela edição. Eu odeio quando documentos nos principais sites são removidos assim. Eu adicionei um novo link que é infelizmente menos relevante, ele não menciona especificamente crona ser preterida :-(
Josh
np ... infelizmente, a Apple parece fazê-lo muito: /
Robert S Ciaccio 19/12/10
4

Você também pode iniciar os fluxos de trabalho do Automator com o iCal se desejar apenas algo simples. Caso contrário, eu faria isso através do launchd.

jmlumpkin
fonte
O único problema com o iCal é que você tem que estar conectado para a execução da tarefa (correto?)
Josh
Sim, acho que você deve estar logado para fazer isso. Eu recomendaria o processo launchd sobre isso, mas algumas pessoas preferem usar apenas iCal e estão sempre logado.
jmlumpkin
O iCal é uma solução muito mais fácil! Veja as tampas de tela que publiquei. Eu com certeza pode ver como eles poderiam ser intimidante :-)
Josh
apenas para esclarecimento, suas capturas de tela são para configuração launchd, correto?
precisa saber é o seguinte
2

Existem duas ferramentas de linha de comando Unix que fazem o que você deseja. atpermitirá que você agende uma tarefa para executar uma vez em um horário específico no futuro. Obviamente, parte da tarefa poderia ser agendar outra tarefa.

cron permite agendar tarefas para serem executadas regularmente ao mesmo tempo, com base na hora do dia, dia da semana etc.

Um ponto a ser observado é que ambos não executarão tarefas se sua máquina não estiver em execução no horário agendado. Existem alternativas, como o anacron, que executarão tarefas agendadas na próxima vez que a máquina inicializar.

KeithB
fonte
11
Observe que, por padrão, o comando "at" está desativado. Use "man atrun" para descobrir como ativá-lo.
Kristopher Johnson
2

O iCal pode ser usado para executar AppleScripts , iniciar aplicativos e executar tarefas de acordo com uma programação.

Existem limitações para usar o iCal, mas ele está incluído no Mac OS X e é relativamente fácil de configurar. As limitações e uma explicação visual de como configurar um AppleScript agendado estão incluídas no link acima.

Configurando um AppleScript agendado com o iCal no Mac OS X

Graham Miln
fonte