Si tienes dudas o problemas, o prefieres pasar el tiempo, éste es tu lugar. Un lugar donde todos compartimos algo en común: GNU/Linux. "Somos más linuxeros que Torvalds y más barbudos que Stallman".
Ver más- 11,478 Miembros
- 15,306 Temas
- 2,733 Seguidores
[Consulta] Mail por scripts con cron
Yo no puedo visualizar el contenido de un mail en webmail o en thunderbird cuando envio un mail por medio de un script ejecutado gracias a cron:
este es el comando que pongo dentro del script:
mail -s "avisobckmensual" user@xxxxx.com
Y luego recibo ese mail, pero en vez de verle el contenido, recibo el mail vacio con un adjunto llamado "adjunto".octet-stream
Lo gracioso del caso es que si yo corro el script directamente de la terminal funciona correctamente.
La tarea del cron esta puesto en el cron del root, y ejecuto el script como root. Pero el script esta dentro de un usuario.
Alguna idea de qué es lo que esta interfiriendo?
- 0Calificación
- 2Seguidores
- 101Visitas
- 0Favoritos
Global
Argentina
Chile
Colombia
España
México
Perú
Uruguay
Venezuela
15 respuestas
Redirije el stdout y stderr del script a un fichero desde el crontab, por ejemplo, a /var/log/script.log y chequea si sigue pasando lo mismo.
perdon el comando es el siguiente:
cat archivo.txt | mail -s "avisobckmensual" user@xxxxx.com
No entiendo, ¿eso es lo que tienes en el crontab?
hola durruti, gracias por las ayudas del dia de hoy jeje.
como te conte al principio, estoy un poco verde con lo que es esto... por eso no entiendo mucho como es que se hace eso que me decis.
Algo me puse a leer al respecto cuando lei tu respuesta... pero no se como hacer correctamente.
Te referis a algo como esto?:
# m h dom mon dow command
41 11 * * * sh /home/carlos/scripts/ejemplo-individual-bckwebwiki-Master.sh > /var/log/script.log
eso es?
No, hazlo así:
* * * * * /bin/sh /tu/script >> /var/log/script.log 2>&1de esta forma te asegurarás de registrar también los errores.
nop, eso es parte de lo que contiene el script. me equivoqué en el post y no lo puse bien... arreglado quedaria asi
lo hice como decias, me larga exactamente el mismo contenido del txt que supuestamente debe llegarme al correo de forma explicita... sin embargo lo sigo recibiendo como adjunto como octet-stream
¿Y tienes algo interesante en /var/log/script.log?
No tengo experiencia con el comando mail, pero, ¿qué pasa si en lugar de utilizar una tubería para pasarle el texto del fichero, utilizas la opción '-q archivo.txt'? ¿o si lo haces de la forma 'mail -s "blabla" bla@blabla.com < archivo.txt'?
mi error es exactamente como el que sale en este foro... solo que no logro deducir como solucionarlo todavia
http://www.linuxquestions.org/questions/linux-newbie-8/cron-email-with-attachment-833343/
Ah, por cierto, pásale también la opción de verbose, -v.
En el enlace ese dice que era problema de la codificación de caracteres.
Algo me dice que el problema es una variable que estoy usando, mira:
DM=$(date +"%b-%d-%Y"
Yo utilizo esa variable para nombrar al fichero de backup, y al fichero log para que tengan en el nombre el dia_
log: logcosa-$DM.txt
backup: backupcosa-$DM.tar.gz
Una vez que cron lo realiza puedo destacar dos cosas:
-curiosamente la fecha esta en español si envio por consola, pero si envio por el cron me lo dice en ingles
ej: Jan en vez de Ene
-y no visualizo el contenido, sino tengo el famoso attachment del que hablamos
Hay algo que no me quedó claro, cuando realizas la prueba ejecutando el script desde la terminal, con que usuario lo estas haciendo?.
En el caso de que estes usando un usuario normal, probaste cargar el script en el cron de ese usuario en vez del cron del root?
Cuando ejecuto la prueba desde la terminal lo hago con usuario root. Como mencioné antes, esto funciona perfecto... pero falla cuando lo cargo al crontab (del root).
Y no hago con usuario común, ya que el que uso no tiene los suficientes permisos para que el script haga todas sus tareas (por eso uso root, asi es mas rapido).
Hice una prueba para testear tu caso. En mi prueba la linea del cron está así:
Y el archivo pruebamail.sh tiene este contenido:
Los 2 mails llegaron sin problema a mi direccion de correo (la cual cambié en este texto). Asegurate de que dentro del script figure el path completo del archivo que envias por mail.
Sería bueno que pongas el script completo y como lo tenes cargado en el cron, para poder evaluarlo mejor.
Las pruebas las hice en un Debian Squeeze.