5 votos

notificación de launchd en salida anormal

Tengo un launchd trabajo plist que se ejecuta un simple script de shell que invoca rdiff-backup copia de seguridad de un directorio remoto a través de SSH a mi equipo. El trabajo se ejecuta cada hora y funciona bien.

Salvo el otro día hubo un fallo de alimentación* y el rdiff-backup del trabajo fue interrumpido. La próxima vez launchd ejecutar el script, rdiff-error de copia de seguridad y se registra su fracaso a la ruta especificada en el plist. launchd, darse cuenta de la anomalía en el código de salida, se detuvo tratando de ejecutar la secuencia de comandos.

Y yo no tenía idea de por seis días.

Obviamente no quiero una notificación de que el código de salida cada vez finalice la secuencia de comandos. ¿Qué puedo hacer para ser notificados de anormal sale?

(*) resulta que mi batería de la UPS fue pasando el auto-test cuando se invoca, pero en realidad no tienen la capacidad de poder ni siquiera una mínima carga durante más de 3 segundos.

3voto

LiberalArtist Puntos 160

El enfoque tradicional, por ejemplo cron puestos de trabajo, es a la tubería de error estándar a un programa como mail que es lo suficientemente inteligente como para no enviar vacío mail. La diferencia con launchd, como se ha descubierto, es que el mecanismo para redirigir el error estándar está dando un StandardErrorPath para que pueda ser escrita, que no es tan conveniente para este propósito, como la terminación de su crontab con la entrada de | mail ….

Mi solución habitual es tener un contenedor de secuencia de comandos de verificación de la StandardErrorPath y me avisará si hay un problema. Esto puede ser parte de la misma launchd trabajo, por lo que la comprobación de que sucede antes de la próxima ejecución programada, o usted puede tener un trabajo independiente, que simplemente gestiona los registros de error (tal vez usando un QueueDirectories clave).

Yo creo que también podría, por ejemplo, el uso de una canalización con nombre como tu trabajo StandardErrorPath, pero en realidad nunca he intentado.

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