On Fri, Aug 24, 2007 at 12:05:11PM -0300, Daniel Bareiro wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > El jueves 23 de agosto del 2007 a las 12:58:55, > Luis Rodrigo Gallardo Cruz escribió: > > >> Estoy ejecutando a través de cron un script en el que se hacen cuatro > >> exports mediante el comando exp de Oracle usando la siguiente > >> sintaxis: > > >> exp bla/bla FILE=${EXP_DIR}/bla_$APP_DATE.dmp \ > >> OWNER=bla GRANTS=Y COMPRESS=Y | \ > >> mail -s "Salida del export del esquema bla de $HOSTNAME" $MAILTO > > >> Y si bien me llegan los mensajes con la salida del comando a la > >> cuenta de correo del usuario bajo la que se ejecuta la tarea cron, > >> los mensajes que se mandan mediante la redirección con el pipe a la > >> cuenta $MAILTO llegan con su cuerpo en blanco. > > > ¿Ya te aseguraste que la llamada a exp tiene *todo* el entorno que > > necesita para funcionar. A veces llamar cosas desde cron es difícil > > por que no está toda nuestra configuración presente. Quita la > > redirección a mail y vé si así recibes algo. > > Sí. Como bien decís, si no tuviera las variables de entorno necesarias, > la llamada al comando fallaría y eso no sucede en este caso, ya que > a la > cuenta del usuario con el que se ejecuta la tarea llega la salida de la > ejecución del export indicando el estado de su terminación, pero no llegan > a la cuenta que pongo en el script. > Pero el comando tiene salida estándar desde el momento > que a la cuenta del usuario de crontab le llega algo. A ver, creo que entendí mal la primera vez. Voy a decir lo que entiendo que pasa, corrigeme si estoy mal. 1. Esta llamada está en el crontab del usuario A 2. MAILTO=B 3. B != A 4. A recibe un correo con el resultado de ejecutar exp <bla bla> 5. B recibe un correo vacío. ¿Todo bien? Entonces lo que está pasando es que exp *no* está mandando mensajes sobre la salida estándar, sino sobre el *error* estándar. Por eso el | mail -s "..." $MAILTO no está recibiendo nada, pero cron sí está capturando algo. En ese caso lo que tienes que hacer es redirigir el error estándar de exp a la salida estándar, para que el | lo pueda tomar y darselo a mail. exp <bla bla> 2>&1 | mail -s "..." $MAILTO Suerte.
Attachment:
signature.asc
Description: Digital signature