Lauchd - Ejecutar la tarea varias veces entre intervalos de tiempo

0

Quiero ejecutar un script cada 15 minutos entre las 12:00 AM y las 4:00 AM. ¿Hay alguna manera de hacerlo con launchd?

Sé que puede especificar una variedad de diccionarios utilizando StartCalendarInterval para lograr esto, pero me gustaría poder cambiar el intervalo fácilmente si así lo deseo. Estaba pensando algo en la combinación de StartCalendarInterval con StartInterval, pero no sé cómo especificaría un tiempo de parada.

La otra alternativa es verificar el tiempo en mi script que estoy ejecutando, pero una vez más, creo que prefiero usar launchd para realizar la tarea en caso de que quiera agregar más scripts.

Estoy bastante seguro de que esto también se puede hacer con cron (podríamos ponerlo aquí como referencia si alguien sabe cómo hacerlo), pero quiero seguir con launchd ya que Apple parece estar eliminando a cron.

    
pregunta tifkin 06.12.2012 - 20:46

1 respuesta

2

Puedes imprimir los diccionarios StartCalendarInterval con algo como esto: for h in {0..4}; do for m in {0,15,30,45}; do echo "<dict><key>Hour</key><integer>$h</integer><key>Minute</key><integer>$m</integer><key>Second</key><integer>0</integer></dict>"; done; done .

También puede ejecutar el script cada 15 minutos pero salir de él según la hora:

h=$(date +%-H)
m=$(date +%-M)
[[ $h -gt 4 || $h -eq 4 && $m -ne 0 ]] && exit

O ejecuta EDITOR=nano crontab -e y agrega una línea como */15 0-4 * * * ~/bin/script .

    
respondido por el user495470 06.12.2012 - 21:53

Lea otras preguntas en las etiquetas