Estoy ejecutando media docena de trabajos cron diferentes desde mi hosting en Hostmonster.com. Cuando se ha ejecutado un cronjob, recibo un correo electrónico con la salida del script.
El correo electrónico viene en el formato de:
De: Cron Daemon Asunto: Cron / ramdisk / bin / php5 -c /home5/username/scheduled/optimize_mysql.bash
El problema con esto es que el asunto del correo electrónico hace que sea muy difícil leer a qué cronjob pertenece el correo electrónico.
¿Hay alguna manera de modificar el asunto de un correo electrónico de cronjob para que sea más fácil de leer?
Por ejemplo:
De: Cron Daemon Asunto: Optimizar la base de datos MySQL
O use el comando sh noop (:)
El tema todavía se ve kludgey, pero al menos es descriptivo y no requiere scripts extraños.
fuente
Queue Summary; PATH=/usr/sbin qshape
Canalice la salida de su trabajo cron directamente al correo, y luego puede completar la línea de asunto. la
2>&1
sintaxis envía cualquier salida de error que de otra forma desaparecería.fuente
Asuma la responsabilidad de crond de enviar la salida del comando (o no si no hay ninguna) canalizando la salida y stderr en 'mailx -E'. Por ejemplo:
La opción '-E' de Mailx es buena porque, al igual que crond, no enviará un correo si no hay salida para enviar.
fuente
Several environment variables are set up automatically by the cron(8) daemon. SHELL is set to /bin/sh, and LOGNAME and HOME are set from the /etc/passwd line of the crontab's owner. PATH is set to "/usr/bin:/bin". HOME, SHELL, and PATH may be overridden by settings in the crontab; LOGNAME is the user that the job is running from, and may not be changed.
mailx
implementaciones; solo algunos de ellos ofrecen esta-E
opción. En Ubuntu quieres los paquetesbsd-mailx
oheirloom-mailx
; elmailutils
paquete contiene unmailx
comando Gnu con un diferente-E
.Otra solución es escribir un script de shell con la línea de asunto que desee que llame al comando correcto. En su ejemplo, esto sería:
Puede incluir su directorio bin en la ruta configurándolo en el archivo crontab.
fuente
PRUEBE ESTO: en la línea de comando, implemente el siguiente código ---
fuente