Executa um script a cada minuto entre duas vezes usando o launchd

1

Estou tentando executar um script a cada minuto (ou 20 segundos) entre as 06:30 e as 10:30 todos os dias da semana usando o launchd. Eu tenho o script correndo a cada minuto / X segundos agora, mas não sei como limitar isso a dias úteis entre dois horários definidos.

A pergunta Executa um cron job a cada 5 minutos entre duas vezes dá a resposta para cron, mas eu gostaria de fazer o mesmo usando launchd.

Como faço isso?

    
por Håkon K. Olafsen 12.07.2012 / 01:44

1 resposta

2

StartCalendarInterval também pode ser uma matriz de dicionários como este: for w in {1..5}; do for h in {6..11}; do echo "<dict><key>Weekday</key><integer>$w</integer><key>Hour</key><integer>$h</integer><key>Second</key><integer>0</integer></dict>"; done; done | pbcopy .

Você também pode executar o script a cada minuto, mas sair dependendo da hora ou da data:

weekday=$(date +%u)
hour=$(date +%-H)
min=$(date +%-M)    
[ $weekday -ge 6 ] && exit
[ $hour -le 5 -o $hour -eq 6 -a $min -le 29 ] && exit
[ $hour -ge 11 -o $hour -eq 10 -a $min -ge 31 ] && exit
    
por 12.07.2012 / 11:19