Escribiendo uno que otro script para monitorear la actividad de un servicio dentro de un servidor (y siguiendo el principio de mi amigo Fabián: "Todo se puede hacer con un script!"), tuve la necesidad de que al final de la ejecución del mismo se enviara un mensaje de correo electrónico a una cuenta específica. Esta es una tarea normal y sencilla utilizando el comando mail, pero en esta ocasión necesitaba que el correo enviara un archivo adjunto, más especificamente una bitácora del sistema.
Así que buscando en la Enciclopedia Galáctica (como mi jefe le dice a San Google!) encontré la forma de hacerlo con un comando llamado mutt.
Procedimiento
Instale mutt, este procedimiento es diferente según su distribución:# apt-get install mutt
/ yum install mutt
/ urpmi mutt
/ ....
Luego de instalar el paquete simplemente use mutt con la siguiente sintaxis:
$ mutt -s "Reporte" -a syslog.tar.gz admin@dominio.com < /home/admin/mensaje.txt
Donde:
- "Reporte": es el asunto del mensaje, recuerde poner la opción -s antes del mismo
- syslog.tar.gz: es el adjunto, en este caso es un log del sistema. Al igual que en la anterior recuerde anteponer la opción -a
- admin@dominio.com: es la dirección de correo del destinatario
- /home/admin/mensaje.txt: cuerpo del mensaje (texto del correo)
$
echo 'El archivo adjunto contiene la bitácora del Sistema' |
mutt -s "Reporte" -a syslog.tar.gz admin@dominio.com
Enlace a Shelldorado donde muestran diferentes formas de enviar un correo con un adjunto desde la consola aquí.
3 comments:
Que hubo Miguel !
Buen artículo. Muy útil en labores administrativas referentes a la actividad del sistema y un buen complemento para servicios como syslogd que no soportan en forma nativa el envio de correo electrónico.
Un Saludo.
Gracias por la info Miguel Abngel:D
en el 2º comando, el documento adjunto(si lo hay claro) debe estar despues del email de destino pues sino lo toma como un 2º adjunto y da error:
echo 'mens' | mutt a@b.com -s 'asunto' -a fich
Publicar un comentario