Mandar la salida de un comando de consola por mail en debian – ubuntu – linux

Bueno intetare fabricar un script con base a una duda que surge en el-hacker sobre como mandar un mail cada cierto tiempo con la salida de un comando en este caso la salida del comando es el estado de los discos duros.

A simple vista no parece tan complicado pero me dio por hacer el script ahora mismo mientras escribo esto.. probando paso a paso todo desde la consola de debian claro esta.

Ahora bien que necesitamos..

Mas o menos es algo como.

Ejecutar Comando.
Copiar la salida del comando a un txt.
Adjuntar ese txt a un correo y enviarlo a una dirección.

Eso es facil.

Lo difícil es… hacer que se mande cada cierto tiempo, pero la verdad que no es complicado… aunque digo que si ya que nunca e usado comando parecido para ejecutar un script cada cierto tiempo y cosas por el estilo pero bueno hay una primera vez para todo 😀

Lo primero es saber el comando que ocupamos.., en este caso sera df -h

Mostrara una info parecida a esta.

#df -h
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/hda1 9,3G 1,9G 7,0G 22% /
tmpfs 89M 0 89M 0% /lib/init/rw
udev 10M 112K 9,9M 2% /dev
tmpfs 89M 0 89M 0% /dev/shm

La info es de un server casero bajo debian ahí tengo unas aplicaciónes que ocuparemos así que ese usare para las pruebas del script.

Y bien tenemos el comando ahora seguimos con el siguiente paso.

Haremos que este comando pase a un fichero de texto ( mas adelante intentare que el comando se envíe directamente al mail por ahora esta bien así para las pruebas )

Ahora creamos un fichero nuevo ya sea con nano o con lo que sea yo como estoy via SSH ahora mismo pues sera con cat

cat >reporte_de_disco.txt

Luego de dar enter presiono control + c y tengo listo un fichero llamado reporte_de_disco.txt ahí es donde mandaremos la salida del comando.

Bien mandamos la salida del comando al fichero que creamos.

dh -f >reporte_de_disco.txt

Y si queremos que escriba también la fecha del dia.

Hacemos

# date >reporte_de_disco && df -h>>reporte_de_disco

Ahora la cosa es sencilla instalamos mailx.

apt-get install mailutils

Ya instalado configuramos si hace falta.

Y el comando para enviar el mail sería algo así.

cat reporte_de_disco| mail -s «asunto» tucorreo@skamasle.com

Eso mandaría el fichero de texto en el mail.

Y eso mandara directamente el comando y no tenemos que enviar nada a ningún fichero, aunque no es buena idea si queremos una copia…

Ahora bien el fichero de texto nunca se llenara ya que cada vez que se valla a escribir en el se borrara lo anterior si no queremos que pase eso lo configuramos y listo……

Todo en orden ?

Pues listo mañana explico como configurar mailx o un dia de estos.

Espero les sirva y cualquier duda comenten aquí o en el foro.skamasle.com

Nos vemos