PDA

Ver la Versión Completa : Concatener líneas y envío automático de correo



davitcito
30-mar-2015, 19:24
Buenas tardes, tengo una consulta relacionada a bash y envío automático de logs con texto adjunto.

Yo tengo un filesystem llamado /errors en donde se generan automaticamente cada día dos archivos con extension .err, el caso es que ambos archivos pueden tener contenido o no. Por ejemplo, mis dos archivos son:

-rw-r--r-- 1 root root 115 Mar 30 12:10 Productos.xml.err
-rw-r--r-- 1 root root 0 Mar 30 12:14 Servicios.xml.err

Como se ve en el ejemplo, uno de los archivos si tiene contenido y el otro no. La línea del archivo con contenido es la siguiente:
<XXXXXXXXXXX> - <File : XXXXXXXXXXX> - <Entry : XXXX> - <XXXXXXXXXXXX> - <XXXXXXXXXXXX> - <XXXXXXXXXX> - <Invalid>

Lo que yo requiero es generar un shell que concatene el contenido de ambos archivos y que este contenido sea enviado mediante correo, digamos automaticamente cada día a las 12:30.

Yo tengo mas o menos la idea de como hacerlo, pero hay un tema que me descuadra un poco, y es que en el filesystem /errors también existen otros archivos, por lo que yo necesitaría solo tomar los que tiene la extensión .err.

¿Alguién que me pudiera dar una ayuda o consejo?

DiabloRojo
30-mar-2015, 19:48
No entendido exactamente cual es el problema.

Para concatenar puedes usar el comando cat
cat Productos.xml.err Servicios.xml.err > resultado.txt
o
cat *.err > resultado.txt

Para enviar correos, te dejo una tuto de nuestro moderador victorhck: https://victorhckinthefreeworld.wordpress.com/2014/04/23/enviar-correo-desde-la-linea-de-comandos-con-mail/

Para ejecutar un script todos los día a una hora determinada, esta el comando crontab, hace poco que alguien pregunto por el. Buscalo en el foro, así aprendes a buscar.

davitcito
30-mar-2015, 20:02
No entendido exactamente cual es el problema.

Para concatenar puedes usar el comando cat
cat Productos.xml.err Servicios.xml.err > resultado.txt
o
cat *.err > resultado.txt

Para enviar correos, te dejo una tuto de nuestro moderador victorhck: https://victorhckinthefreeworld.wordpress.com/2014/04/23/enviar-correo-desde-la-linea-de-comandos-con-mail/

Para ejecutar un script todos los día a una hora determinada, esta el comando crontab, hace poco que alguien pregunto por el. Buscalo en el foro, así aprendes a buscar.

Gracias, el tema de concatenar y envío de correo lo tengo claro. Ya casi tengo armado el script, sin embargo, se me presentó otro inconveniente: Los archivos .err pueden tener contenido o no, ahora tengo que hacer la diferencia: Si tienen contenido enviar un correo con el subject "Errores en logs", si no tienen contenido el subject sería "No se encontraron errores". Podría usar el IF, o en todo caso, ¿qué sería recomendable?

DiabloRojo
31-mar-2015, 13:44
Abajo tienes un ejemplo, antes de preguntar en el foro deberías buscarlo por Internet porque tienes muchos ejemplos de todo tipo.

https://es.answers.yahoo.com/question/index?qid=20111020032624AAnCNX2