En ocasiones, cuando no estas en casa, es interesante saber cuando alguien enciende nuestro equipo. Esto puede ser de utilidad para controlar cuando se conectan nuestros hijos a Internet, por si te roban la computadora, hay algún reinicio inesperado etc etc
El siguiente script nos avisará por correo electrónico de cuando un PC se inicia y se conecta a Internet.
Nos informa de la hora a la que se enciende el pc, el nombre de la máquina, la dirección IP, tanto interna como pública etc.
Estando en nuestro directorio principal, o sea en nuestra home, en una terminal escribe:
sudo nano Arranque.sh
Copia y pega el siguiente código en un archivo de texto con el nombre Arranque y la extensión sh
#!/bin/bash
#https://chapuboot.blogspot.com/
#https://linuxete.duckdns.org/
file_informacion="/home/mi_usuario/info_pc"
sleep 3s
#Definir variables de datos PC
fecha_hora=$(date)
red_local=$(hostname -I)
#IP_PUBLICA=$(curl -silent -L http://checkip.amazonaws.com|tail -n 1)
IP_PUBLICA=$(curl ifconfig.me 2> /dev/null)
datos_equipo=$(hostname)
version=$(cat /etc/debian_version)
#carga los datos en el archivo info
echo Fecha y Hora $fecha_hora >$file_informacion
echo Datos del Host $datos_equipo >> $file_informacion
echo Dirección IP Local $red_local >> $file_informacion
echo Dirección IP Pública $IP_PUBLICA >> $file_informacion
echo Debian version $version >> $file_informacion
#envía los datos por correo electrónico
mail -s "Inicio Mi PC ( `date` )" tu_email@gmail.com < $file_informacion
En el script debes de cambiar:
- 1- El usuario
- 2- El asunto del mensaje (o deja el que está)
- 3- La dirección de correo electrónico por la que vayas a usar.
Hacemos el script ejecutable con el siguiente comando:
chmod +x Arranque.sh
2- Instalar ssmtp y configurar la cuenta de correo.
SSMTP es un programa que entrega correo electrónico desde un ordenador local a un servidor de correo, su uso principal es reenviar el correo electrónico automatizado (como las alertas del sistema) desde un equipo a una dirección de correo electrónico externa.
Para instalar lo necesario basta con escribir el siguiente comando en una terminal:
sudo apt install ssmtp mailutils curl -y
Para configurar el programa editamos su archivo ssmtp.conf
sudo nano /etc/ssmtp/ssmtp.conf
Rellenamos la línea root con tu dirección de correo
root=tu_correo@gmail.com
Rellenamos la línea mailhub con el smtp de gmail
mailhub=smtp.gmail.com:587
Descomentamos la línea FromLineOverride
FromLineOverride=YES
Añadimos a continuación las siguientes líneas
AuthUser=tu_correo@gmail.com
AuthPass=tucontraseñasinespacios
UseSTARTTLS=YES
Tengo que aclarar que la contraseña de AuthPass no es la contraseña de tu cuenta de Gmail.
Yo voy a usar una cuenta Gmail, que tiene activada la verificación en dos pasos, la cual ya no tiene la opción de «acceso a aplicaciones poco seguras»(necesaria para aplicaciones de terceros), Por esta razón deberemos crear una contraseña única en el apartado «Contraseñas de Aplicaciones»
Para obtenerla deberás ir a la Configuración de tu cuenta, Seguridad
Se generará una contraseña de 15 dígitos que será la que usarás para configurar el apartado de AuthPass.
**Ojo, la contraseña se usa sin los espacios, aunque te la muestra con espacios entre dígitos, hay que pegarla sin los espacios **
¡¡Vamos a probarlo!!
Para saber si funciona tecleamos el siguiente comando en consola.
echo "Testing...1...2...3" | ssmtp mi_email@gmail.com
No deberá arrojar ningún error y si vamos a nuestra bandeja de entrada, veremos que tenemos un nuevo email.
Para saber que está funcionando el script, en una terminal escribimos el siguiente comando.
./Arranque.sh
Al hacerlo revisa la bandeja de entrada.
3- Automatizar la tarea.
Vamos a hacer que el script Arranque.sh se ejecute al arrancar la computadora.
Crearemos un archivo Crontab, así que desde la terminal ejecutamos el siguiente comando:
crontab -e
Dentro pegaremos la siguiente instrucción:
@reboot ~/Arranque.sh >> ~/Arranque.log 2>&1
Ahora cada vez que se inicie el PC te informará por correo electrónico.