0 votos

Lauchd - Ejecutar la tarea varias veces entre el intervalo de tiempo

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

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

La otra alternativa es comprobar la hora 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 añadir más script.

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

2voto

Fuzzy Purple Monkey Puntos 702

Puede imprimir los diccionarios StartCalendarInterval con algo así: 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 podrías ejecutar el script cada 15 minutos pero salir de él dependiendo de la hora:

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

O bien, ejecuta EDITOR=nano crontab -e y añadir una línea como */15 0-4 * * * ~/bin/script .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X