Todo sobre Apple, Android, Juegos Apks y Sitios de Peliculas

Cómo generar y enviar por correo electrónico automáticamente estadísticas informáticas

Es importante verificar varios datos de registro y estadísticas en su servidor todos los días, pero llega a ser tedioso. ¿No sería bueno recibir un único correo electrónico con todos los aspectos más destacados cada día, de modo que ni siquiera necesite ingresar al servidor para verificar si hay problemas? Esta guía le mostrará cómo configurar correos electrónicos automatizados en Linux y Windows.

Cubriremos esto específicamente para Ubuntu y Windows 8.1, utilizando Gmail como servidor de correo electrónico desde donde se envía el correo. Si tiene otra versión de Linux o Windows, o prefiere utilizar algún otro servicio de correo electrónico, las instrucciones aquí deberían poder adaptarse fácilmente.

Correos electrónicos automatizados en Linux

Usaremos dos paquetes diferentes para lograr esto, ssmtp y mailutils, así que instálelos ambos con el siguiente comando:

 $ sudo apt-get install ssmtp mailutils 

Una vez instalados, debemos realizar algunos cambios en el archivo de configuración SSMTP:

 $ sudo vi /etc/ssmtp/ssmtp.conf 

Edite el archivo con estos cambios (es seguro borrar todo el texto del archivo y copiar/pegar estas configuraciones, si lo desea):

  
 [email protected] 
  
 mailhub=smtp.gmail.com:587 
  
 rewriteDomain=gmail.com 
  
 [email protected] 
  
 UseTLS=Yes 
 UseSTARTTLS=Yes 
  
 AuthUser=username 
 AuthPass=password 
  
 FromLineOverride=yes 

Cuando haya terminado de editar el archivo, querrá cambiar los permisos ya que su contraseña de Gmail está almacenada en texto sin formato.

 $ sudo chmod 640 /etc/ssmtp/ssmtp.conf 
 $ sudo chown username.username /etc/ssmtp/ssmtp.conf 

Siempre es más seguro hacer que root sea el propietario del archivo, pero entonces tendríamos que usar el comando sudo en nuestro script y nos pediría una contraseña, anulando así el propósito de automatizar todo este proceso.

Si está utilizando un servidor compartido y le preocupa que su contraseña se almacene en texto sin formato y sea legible por root, cree una cuenta de Gmail desechable o use un servidor de correo electrónico que no requiera ningún tipo de autenticación en primer lugar.

Para asegurarnos de que todo esté configurado correctamente, intentemos con un correo electrónico de prueba:

 $ echo "Testing" | mail -s "Testing mail setup" [email protected] 

“Prueba” estará en el cuerpo del correo electrónico y el asunto será “Prueba de configuración del correo”. Revisa tu correo electrónico para asegurarte de haberlo recibido.

Escribir un guión para los correos electrónicos

Ahora que podemos enviar correos electrónicos desde la línea de comando, escribamos un script que nos enviará información básica sobre nuestro sistema.

 #!/bin/bash 
  
 echo "Hard drive space:" > /home/geek/email.txt 
 df -h >> /home/geek/email.txt 
  
 echo "Users currently logged in:" >> /home/geek/email.txt 
 who >> /home/geek/email.txt 
  
 echo "Running processes:" >> /home/geek/email.txt 
 ps -e >> /home/geek/email.txt 
  
 cat /home/geek/email.txt | mail -s "Daily server information" [email protected] 
  
 rm /home/geek/email.txt 

Obviamente, puedes profundizar mucho más en tu script e incluso hacer que el formato sea un poco más agradable, pero así es como se ve el resultado en nuestro correo electrónico:

Ahora que el script está escrito y probado, podemos usar cron para ejecutarlo automáticamente a la misma hora todos los días. En este ejemplo, configuraremos el correo electrónico para que se envíe a las 2:00 a. m. todas las mañanas, de modo que podamos revisar los datos más tarde ese día.

 $ crontab -e 

Para correos electrónicos de las 2:00 a. m., agregue:

 0 2 * * * /home/geek/script.sh 

Hemos escrito un artículo completo sobre archivos crontab si necesita más ayuda con esta parte.

Correos electrónicos automatizados en Windows

Es posible enviar correos electrónicos en la línea de comando a través de PowerShell, pero descubrimos que implementar esta funcionalidad es mucho más fácil con aplicaciones de terceros, especialmente cuando se usa Gmail. Enviar correo electrónico es un programa gratuito disponible para Windows que facilita la integración con el Programador de tareas de Windows y Gmail. Haga clic en el enlace de arriba para descargar la copia más reciente y asegúrese de obtener la versión compatible con TLS.

Una vez que haya descargado SendEmail, extraiga el archivo zip y coloque el contenido en algún lugar donde pueda almacenarlo mientras planee enviar correos electrónicos automatizados. En este ejemplo, simplemente vamos a almacenar el programa en C:\SendEmail

Probemos SendEmail para tener una idea rápida de cómo funciona. Abra un símbolo del sistema escribiendo cmd en el menú Inicio o Ejecutar (Ctrl+R).

Con el símbolo del sistema abierto, use el comando cambiar directorio para navegar hasta donde almacenó los archivos de SendEmail.

 cd C:\SendEmail 

Ahora podemos intentar enviar un correo electrónico de prueba con el siguiente comando:

 sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp password -u "Test email subject" -m "This is a test email." 

Obviamente, reemplace “nombre de usuario” y “contraseña” con las credenciales de su cuenta antes de ejecutar el comando.

Esto es lo que realmente hace el comando anterior:

 sendEmail 

ejecuta el programa.

 -f 

– de la Dirección

 -t 

– dirigirse

 -s 

– Servidor SMTP

 -xu 

– nombre de usuario

 -xp 

– contraseña de cuenta

 -u 

– asunto del email

 -m 

– texto del cuerpo del correo electrónico

Revise su bandeja de entrada para asegurarse de haber recibido el correo electrónico de prueba y luego podremos pasar a escribir un script que nos enviará información del servidor.

Escribir un guión para los correos electrónicos

Para aprovechar al máximo nuestro script, lo escribiremos para PowerShell. Abra Windows PowerShell ISE escribiendo powershell_ise.exe en el mensaje Ejecutar (Ctrl+R).

En el lado derecho de la ventana de PowerShell ISE, puede enumerar todos los comandos que PowerShell es capaz de ejecutar. Esto debería darle un buen comienzo para generar los tipos de información que necesita reportar. En su secuencia de comandos, también puede recurrir a programas de terceros para generar información (es decir, SendEmail es una aplicación de terceros, pero PowerShell y cmd pueden usarla para realizar tareas que normalmente no pueden).

Para nuestro script de ejemplo, verificaremos el uso actual del disco de la unidad C, mostraremos los procesos actualmente en ejecución y todos los archivos que se están compartiendo actualmente a través de la red.

  
 echo "C: Drive Usage:" > C:\SendEmail\info.txt 
 Get-WmiObject win32_LogicalDisk -Filter "DeviceID='C:'" | Select-Object Size,FreeSpace >> C:\SendEmail\info.txt 
  
 echo "Running processes:" >> C:\SendEmail\info.txt 
 get-process >> C:\SendEmail\info.txt 
  
 echo "SMB shares:" >> C:\SendEmail\info.txt 
 get-smbshare >> C:\SendEmail\info.txt 
  
 type C:\SendEmail\info.txt | C:\SendEmail\sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp password -u "Daily server info" 
  
 rm C:\SendEmail\info.txt 

En este script, se envía diversa información a C:\SendEmail\info.txt y luego se nos envía por correo electrónico el texto de ese documento antes de eliminarlo. Guarde su secuencia de comandos con una extensión de archivo ps1 (archivo PowerShell).

Una vez finalizado el script, ejecute una prueba rápida desde el mensaje Ejecutar para asegurarse de que esté funcionando correctamente.

Sólo usa el

 powershell 

comando con un

 -file 

argumento y especifique la ruta a su script.

 powershell -file "c:\SendEmail\daily-email.ps1" 

Revise su bandeja de entrada para asegurarse de haber recibido el correo electrónico; de lo contrario, revise su secuencia de comandos en busca de errores de sintaxis. Así es como se ve el correo electrónico generado a partir de nuestro script de ejemplo:

Puede jugar con el formato (como hacer eco de líneas vacías entre el texto) para que se vea mejor en su dispositivo, o mejor aún, puede usar un programa de terceros que generará la información necesaria en un formato más legible que Windows ( el proceso de creación de scripts seguirá siendo el mismo).

Una vez que haya resuelto los problemas de su secuencia de comandos, puede usar el Programador de tareas de Windows para automatizarla. Abra el Programador de tareas de Windows a través del menú Inicio.

Con el Programador de tareas abierto, seleccione Acción > Crear tarea básica.

Nombra esta tarea como “Secuencia de comandos de correo electrónico diario” y haz clic en Siguiente. En la siguiente pantalla, seleccione la frecuencia con la que desea que se ejecute su script de correo electrónico, probablemente diariamente. Luego, elija la hora a la que desea que se ejecute el script y presione Siguiente.

Ahora debería estar en la parte “Acción” del asistente, seleccionar “Iniciar un programa” e ingresar el mismo texto que ingresamos anteriormente en el mensaje Ejecutar para probar nuestro script.

Presiona Siguiente y luego presiona Sí en esta ventana:

Haga clic en Finalizar en el último menú y habrá terminado de programar sus correos electrónicos automáticos.

Resumen del Contenido