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?

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


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.


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.


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.