Tengo un escritorio Ubuntu 10.04 en casa que funciona las 24 horas del día, los 7 días de la semana. Recientemente, he notado que la máquina ocasionalmente se reinicia sola (aproximadamente una vez al mes). Me gustaría configurar este servidor para recibir un correo electrónico cada vez que se inicie. Me gustaría recibir el correo electrónico en mi cuenta de Gmail y configuraré otra cuenta de Gmail para que el servidor la use para enviar correos electrónicos (si es necesario).
Como beneficio adicional, sería fantástico si el correo electrónico pudiera contener algún tipo de información de diagnóstico relacionada con la causa del bloqueo y reinicio del servidor.
Gracias
Respuesta1
Veo al menos dos opciones posibles:
- Agregue un nuevo cronjob (por ejemplo, @reboot root mail -s "Acabo de reiniciar"[correo electrónico protegido]
- Instalar registro de registro; le enviará los mensajes de registro que contienen el motivo del reinicio (si hay entradas de registro sobre ellos)
Respuesta2
Es difícil rastrear por qué su computadora falló y se reinició, pero puede enviar sus registros por correo electrónico con el correo electrónico de notificación. Para un seguimiento avanzado, sugiero probar Zabbix, NagiOS o Cacti. Sin embargo, aquí hay un script simple de Python 2.7 para enviar un correo electrónico con el comando "./script.py nombre_usuario_para_gmail ruta_a_letra":
#!/usr/bin/python2.7
import smtplib
import getopt
import sys
args = getopt.getopt(sys.argv[1:], ":")
laiskas = args[1][1]
SENDER = "no-reply@" + args[1][0]
mssg = open(laiskas, 'r').read()
RECIPIENTS = ['[email protected]']
server = smtplib.SMTP('smtp.gmail.com',587)
#server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.ehlo()
server.login(args[1][0] + "@gmail.com","R7olM6Qw")
server.sendmail(SENDER,RECIPIENTS,mssg)
server.quit()
Tienes que cambiar R7olM6Qw a tu propia contraseña de GMail. Además, cambie la variable DESTINATARIOS para sus direcciones. El script necesita smtplib y python2.7, que quizás deban instalarse en su servidor desde apt.
Luego puedes crear un archivo de texto simple al lado del script:
To: [email protected]
From: [email protected]
Subject: Computer powered on!
Random text here...
Al final, simplemente agregue una nueva línea al archivo /etc/rc.local:
/path/to/the/python/script gmail_username /path/to/the/letter
Sin embargo, este no es un método seguro ya que almacenará su contraseña de manera insegura, por lo que le sugiero que cree un buzón solo para eso. Además, tenga cuidado y modifique todos los scripts para evitar que otros usuarios hagan algo con ellos.
En cambio, creo que es bastante más razonable tener un servidor separado con un script de correo PHP disponible solo para las IP de los servidores. En ese caso, el servidor separado prestaría el servicio de correo de forma segura, dejando a los otros servidores solo con curl o wget para enviar las notificaciones.
Respuesta3
#!/bin/sh
EMAIL="[email protected]"
SUBJECT="[$HOSTNAME] - System $1"
if [ "$1" = startup ]
then
ACTION="started successfully"
else
ACTION="is shutting down"
fi
# a printf format string to simplify a long body
BODY="This is an automated message to notify you that %s %s.\nDate and Time: %s\n"
printf "$BODY" "$HOSTNAME" "$ACTION" "$(date)" | mail -s "${SUBJECT}" "${EMAIL}"
Guarde esto como, por ejemplo, /usr/local/bin/bootmail.sh, hágalo ejecutable, etc.
Luego, para crear un servicio systemd, cree un archivo en /etc/systemd/system con extensión .service (por ejemplo, /etc/systemd/system/bootmail.service) que contenga:
[Unit]
Description=Run Scripts at Start and Stop
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/local/bin/bootmail.sh startup
ExecStop=/usr/local/bin/bootmail.sh shutdown
[Install]
WantedBy=multi-user.target
Now, do:
systemctl daemon-reload
systemctl enable bootmail.service
Ahora, debería recibir correos electrónicos al inicio y al apagar (suponiendo que el correo esté configurado correctamente, etc.).