Automatize o script python mac

1

Eu quero configurar um script python para executar todos os dias da semana (não aos domingos e sábados) no meu mac OSX 10.8.4. Pelo que eu encontrei até agora, parece que eu quero usar o cron. Mas antes que eu faça algo horrível ao meu computador, alguém pode confirmar que isso fará o que eu quero?

>>> crontab -e
>>> 30 4 * * 1-5 python /Users/lego90511/PycharmProjects/Stock Scanner/stock_scanner.py

Se isso funcionar, por favor, diga-me, como posso removê-lo do cron?

    
por EasilyBaffled 15.09.2013 / 17:26

2 respostas

1

Isso deve funcionar, mas substitua Stock Scanner por Stock\ Scanner . Você pode desfazer as alterações executando crontab -e e apenas excluindo a linha. Se você não alterou EDITOR e não sabe usar vi , pode usar EDITOR=nano crontab -e .

Então, basicamente, execute crontab -e (ou EDITOR=nano crontab -e ) e adicione uma linha como esta:

30 4 * * 1-5 python ~/PycharmProjects/Stock\ Scanner/stock_scanner.py

O formato crontab é descrito em man 5 crontab .

Usando o launchd, você pode salvar um plist assim como ~/Library/LaunchAgents/test.plist :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>test</string>
  <key>ProgramArguments</key>
  <array>
    <string>python</string>
    <string>/Users/lego90511/PycharmProjects/Stock Scanner/stock_scanner.py</string>
  </array>
  <key>StartCalendarInterval</key>
  <array>
    <dict>
      <key>Weekday</key>
      <integer>1</integer>
      <key>Hour</key>
      <integer>4</integer>
      <key>Minute</key>
      <integer>30</integer>
    </dict>
    <dict>
      <key>Weekday</key>
      <integer>2</integer>
      <key>Hour</key>
      <integer>4</integer>
      <key>Minute</key>
      <integer>30</integer>
    </dict>
    <dict>
      <key>Weekday</key>
      <integer>3</integer>
      <key>Hour</key>
      <integer>4</integer>
      <key>Minute</key>
      <integer>30</integer>
    </dict>
    <dict>
      <key>Weekday</key>
      <integer>4</integer>
      <key>Hour</key>
      <integer>4</integer>
      <key>Minute</key>
      <integer>30</integer>
    </dict>
    <dict>
      <key>Weekday</key>
      <integer>5</integer>
      <key>Hour</key>
      <integer>4</integer>
      <key>Minute</key>
      <integer>30</integer>
    </dict>
  </array>
</dict>
</plist>

Em seguida, carregue o plist executando launchctl load ~/Library/LaunchAgents/test.plist ou efetuando logout e back in. Você pode aplicar alterações ao plist descarregando-o e carregando-o.

Observe que o cron e o launchd usam um relógio de 24 horas. Se você quis dizer 4 PM em vez de 4 AM, substitua os valores da hora por 16.

    
por 15.09.2013 / 18:03
0

Dê uma olhada em Hazel .

Este é um aplicativo que eu uso para todas as minhas necessidades de automação. Eu recomendo strongmente.

    
por 16.09.2013 / 00:35