¿Es posible reiniciar una computadora en respuesta a una notificación por correo electrónico?

29

Estoy buscando una forma de reiniciar las máquinas después de recibir una notificación por correo electrónico.

La configuración en la que quiero usar esto es una granja de render. Tenemos 5 cajas con 8 Nvidia GTX 980Ti en ellas. Están ejecutando Windows 10 Professional de 64 bits.

El problema que tenemos es que a veces se congelan o "bloquean" mientras se procesan. Lo tengo configurado, así que una vez que esto sucede, recibo un correo electrónico que dice "x máquina se ha estancado"

He automatizado todo en las máquinas; inician sesión automáticamente, abren los programas necesarios, inician una conexión con nuestro servidor de licencias y asignan todas las unidades de red requeridas.

Básicamente, todo lo que tiene que hacer es apagarlo y volverlo a encender, y vuelve a funcionar.

Entonces, lo que me pregunto es, ¿puedo configurar un programa, evento o un script que indique a las máquinas que se reinicien después de recibir el correo electrónico que dice que una máquina se ha estancado?

La máquina que ejecutará esto es Windows 7 Pro de 64 bits.

RyanIG
fuente
3
¿Sabes qué se estanca y con qué frecuencia? Un plan mejor quizás para hacer que la computadora se reinicie a diario evitando el bloqueo por completo
Shaun07776
@ Shaun07776 Desafortunadamente, ese es el problema, es aleatorio, he enviado un archivo de registro después del archivo de registro a cada proveedor de software que estamos tratando de resolver este problema, a partir de ahora no sabemos qué los está causando o cuándo sucede, por eso estoy tratando de automatizar todo lo que pueda mientras tanto hasta que lo resolvamos.
RyanIG
23
¿Por qué el trabajo que detecta el bloqueo y envía el correo electrónico no puede reiniciarse? ¿Por qué el correo electrónico debe ser el activador?
exussum
@exussum El programa que estamos usando se llama Deadline 7.2, está destinado a hacer esto, lo configuré para que el software lo haga, pero no funciona por alguna razón, el programa permite secuencias de comandos de Python a través de un servicio web, pero yo tampoco puedo hacer que eso haga mucho.
RyanIG
@RyanIG - Solo por curiosidad, ¿esto necesita algún tipo especial de procedimiento de apagado, la máquina no responde lo suficiente?
stefgosselin

Respuestas:

44

Desea un dispositivo llamado "Interruptor de alimentación remoto", uno que hemos utilizado en mi lugar de trabajo para reiniciar de forma remota los módems de cable es el UIS-322b a continuación:

ingrese la descripción de la imagen aquí

Puede configurarlo con una dirección IP y luego iniciar sesión en él para encender, apagar o apagar y encender cualquier dispositivo conectado, y configurarlo en un horario. No puede controlarlo por correo electrónico, sino a través de la interfaz web. Aún puede armar algo a través de wgeto curlenviarle automáticamente una solicitud web. Puede tener otras características y posibilidades de control que desconozco.

Si está ejecutando sistemas de renderizado que consumen mucha energía, no estoy seguro de si el dispositivo específico anterior puede manejarlos, pero puede haber otros que lo hagan. Otra cosa a tener en cuenta es "Regulable Power Strip".

LawrenceC
fuente
15
Básicamente, desconecta y conecta remotamente el dispositivo por usted.
LawrenceC
1
También existen dispositivos similares diseñados para el uso del centro de datos. Están diseñados para montarse en un rack y tienen muchos más puertos de salida. Los que he visto fueron controlados por RS-232. De esa manera, podría conectarlos a una unidad con muchos puertos RS-232 de modo que esta unidad le permita eliminar la consola y el ciclo de alimentación remoto de todos los servidores individuales en un rack completo.
kasperd
1
Algunos UPS también pueden proporcionar esta funcionalidad. Puede conectarse al UPS (a través de HTTP, o Telnet, o software lanzado por el fabricante) para conectarse a través de un cable (Ethernet o un "cable serie"). Los detalles específicos varían según las soluciones individuales. Algunos UPS solo admiten esto cuando se utiliza una tarjeta adicional (insertada en el UPS), comprada por separado. Me imagino que son más caros que el dispositivo que LawrenceC está mostrando, porque los UPS también ofrecen la función de respaldo de batería. Sin embargo, el costo más alto puede ser aceptable debido a la inclusión de la característica adicional útil.
TOOGAM
1
Existe un software que forma parte de Red Hat Cluster Suite, llamado agentes de protección, que proporciona una interfaz CLI abstracta para reiniciar estos dispositivos, incluido KVM como dispositivo de "protección de energía". Me ha sido útil.
Sin nombre de usuario el
44
@RyanIG Tal vez pueda configurar uno de estos dispositivos para que realicen el restablecimiento automático automáticamente cada 10 minutos aproximadamente, a menos que reciban un comando a través de Ethernet. Luego puede conectar las computadoras a su propia fuente de alimentación y dejar que envíen el comando no reiniciar cada 3 minutos más o menos. Si la computadora se cuelga, también dejará de enviar el comando y se restablecerá por completo. Básicamente es lo que se llama un "perro guardián (temporizador)" en los sistemas integrados y evitaría toda la comunicación por correo electrónico.
nulo
33

¿Puedo configurar un programa, un evento o un script que indique a las máquinas que se reinicien?

Depende de lo que quieras decir con:

se congelan o "se estancan"

Si la máquina remota se ha colgado de una manera que requiere un "restablecimiento completo", entonces un reinicio remoto no funcionará.

Dicho esto, puede usarlo shutdownpara reiniciar de forma remota un dispositivo.

Ejemplo:

shutdown /r /f /m \\computer
  • /r - Apague y reinicie el ordenador.

  • /f - Forzar el cierre de aplicaciones en ejecución sin advertir a los usuarios.

  • /m \\computer - Especifique la computadora de destino.

Puede ejecutar el comando anterior desde Outlook cuando reciba el correo electrónico apropiado.

El siguiente enlace: Cómo: iniciar una aplicación por correo electrónico en Outlook debería ayudarlo a comenzar.


shutdown uso

F:\test>shutdown /?
Usage: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]
    [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]

    No args    Display help. This is the same as typing /?.
    /?         Display help. This is the same as not typing any options.
    /i         Display the graphical user interface (GUI).
               This must be the first option.
    /l         Log off. This cannot be used with /m or /d options.
    /s         Shutdown the computer.
    /r         Shutdown and restart the computer.
    /g         Shutdown and restart the computer. After the system is
               rebooted, restart any registered applications.
    /a         Abort a system shutdown.
               This can only be used during the time-out period.
    /p         Turn off the local computer with no time-out or warning.
               Can be used with /d and /f options.
    /h         Hibernate the local computer.
               Can be used with the /f option.
    /e         Document the reason for an unexpected shutdown of a computer.
    /m \\computer Specify the target computer.
    /t xxx     Set the time-out period before shutdown to xxx seconds.
               The valid range is 0-315360000 (10 years), with a default of 30.
               If the timeout period is greater than 0, the /f parameter is
               implied.
    /c "comment" Comment on the reason for the restart or shutdown.
               Maximum of 512 characters allowed.
    /f         Force running applications to close without forewarning users.
               The /f parameter is implied when a value greater than 0 is
               specified for the /t parameter.
    /d [p|u:]xx:yy  Provide the reason for the restart or shutdown.
               p indicates that the restart or shutdown is planned.
               u indicates that the reason is user defined.
               If neither p nor u is specified the restart or shutdown is
               unplanned.
               xx is the major reason number (positive integer less than 256).
               yy is the minor reason number (positive integer less than 65536).

Otras lecturas

DavidPostill
fuente
2
¡Gracias por la rápida respuesta! Cuando se "congelan o bloquean" a veces el sistema se cuelga por completo y requiere un reinicio completo, otras veces puede salirse reiniciando a través de la línea de comandos o mediante el visor de equipo. Este problema que estoy teniendo al descubrir cómo vincular los scripts al correo electrónico, ¿tendría algún hilo o recurso sobre cómo hacer esto? Estamos usando el gmail pero podría ejecutarlo a través de Outlook si es necesario. ¡aclamaciones!
RyanIG
No se preocupe, gracias por su ayuda de todos modos! seguiré cavando
RyanIG
@RyanIG Cómo: desencadenar una aplicación por correo electrónico en Outlook debería darle un punto de partida. Respuesta actualizada
DavidPostill
16

Si tiene servidores reales , es probable que tengan una función de administración remota a la que se puede conectar incluso si el sistema operativo principal de la máquina está completamente congelado. En general, utiliza SSH para conectarse al controlador. El comando específico emitido depende de la marca de su servidor.

Para los servidores Dell, que usan DRAC (Controlador de acceso remoto de Dell), el comando para ejecutar después de SSH en el DRAC es:

racadm serveraction hardreset

Eso realiza un restablecimiento completo, equivalente a desconectar el cable de alimentación y luego reiniciar la máquina. Si la máquina no está completamente colgada, en powercyclelugar de hardresethacer el trabajo. ( Fuente )

Los servidores HP usan iLO, que también es accesible a través de SSH. El comando de restablecimiento completo es simplemente:

reset hard

( Fuente , la referencia oficial en PDF a las secuencias de comandos de iLO).

Puede conectar el correo electrónico que recibe a la ejecución de estos comandos con la respuesta de DavidPostill. Hay clientes SSH para Windows; Creo que PuTTY tiene una interfaz de línea de comandos.

Ben N
fuente
Voy a echar un vistazo a esto, ya que usamos 3 servidores Dell Powerblade, una pregunta rápida, ¿tiene que estar en el controlador de dominio o si teníamos un servidor de licencia podría estar configurado en eso? Las máquinas están constantemente conectadas a ambos. ¡Gracias por tu respuesta!
RyanIG
1
Se debe poder acceder al DRAC desde cualquier lugar de la misma red. Por lo tanto, cualquier computadora que pueda recibir el correo electrónico y llegar al DRAC debería poder manejar todo el sistema.
Ben N
Impresionante, voy a investigar esto y te diré cómo me llevo, ¡salud!
RyanIG
13

Utiliza Outlook.

El enlace en la parte inferior de la respuesta tiene información que ayudó con esta respuesta. Felicitaciones a GuidingTech.com

Cree un archivo .bat primero.

shutdown.exe /r /t 00

Guardar como reiniciar.bat

Asegúrese de que la computadora haya iniciado sesión con el correo electrónico en el que recibe la notificación por correo electrónico.

Puede configurar diferentes cuentas para cada computadora si lo desea y configurar su correo electrónico para reenviar los correos electrónicos que reciba como notificaciones.

Ejemplo.

[email protected] es la PC host con una tarjeta gráfica que no está renderizando.

Testemail.com es su correo electrónico en el que recibe notificaciones.

Cuando reciba el correo electrónico, haga que su Outlook reenvíe automáticamente el correo electrónico al correo electrónico correspondiente. que en este caso es [email protected]

[email protected] recibido en [email protected] y luego enviar ese correo electrónico a todas las computadoras.

El truco aquí es configurar un correo electrónico de notificación diferente para cada computadora para que sepa cuál apagar.

Para configurar una regla para reenviar, siga estas instrucciones e ingrese una palabra en el asunto en función de la PC que desea reiniciar.

Nota: Esto es para configurar su computadora, que recibirá los correos electrónicos a continuación, vamos a configurar las PC individuales.

Paso 1. Ahora abre MS Outlook. En la pestaña Inicio, vaya a Reglas y expanda el menú>. Seleccione Administrar reglas y alertas. ingrese la descripción de la imagen aquí

Paso 2. En la ventana Reglas y Alertas, presiona Nueva regla mientras estás en Correo electrónico> pestaña Reglas ingrese la descripción de la imagen aquí

Paso 3. Comienza seleccionando tu plantilla como Aplicar regla en los mensajes que recibo. Haga clic en Siguiente ingrese la descripción de la imagen aquí

Paso 4. Una vez más, debemos especificar qué regla desea usar en el extremo Receptor, que será la computadora en la que se muestra el correo electrónico reenviado. Esta será la regla para reiniciar la computadora que especificó.

A. Con palabras específicas en el asunto: otra restricción para que el correo electrónico que recibe se identifique mejor.

B. Con palabras específicas en el cuerpo: a veces, solo el sujeto puede ser> ambiguo. Entonces un cuerpo lo hace más refinado.

Selecciónelos y presione siguiente.

ingrese la descripción de la imagen aquí

Ahora especifique qué desea que busque el correo electrónico para activar el reinicio.

Ejemplo si eliges asignatura.

Digamos que la palabra que eliges es Computer1-RenderIssue

Lo escribirá en "Especificar palabras o frases para buscar en el subtítulo"

Ahora que tiene la configuración, es hora de hacer el paso final.

Paso 5. Luego viene la acción a aplicar cuando se recibe un correo electrónico y> todas las condiciones coinciden. Seleccione iniciar aplicación y elimínela. ingrese la descripción de la imagen aquí

** Nota: ** Si no lo elimina. Si la computadora se reinicia si Outlook se abre, irá en un bucle.

Paso 5a Para iniciar la acción de la aplicación, haga clic en el enlace y seleccione el archivo que creó Restart.bat Haga clic en Siguiente.

Paso 5b Haga clic en siguiente en * "¿Hay alguna excepción?"

Paso 6 Dé un nombre a la regla para futuras referencias, actívela y haga clic en> Finalizar.

Ahora, cada vez que una de sus computadoras tenga un problema cuando se le envíe la representación del correo electrónico con la computadora especificada. Esto reenviará el correo electrónico a esa computadora y reiniciará la máquina.

Espero que esto ayude. Intenté formatearlo lo mejor que pude mientras hacía mi trabajo.

Referencia para algunos de los trabajos aquí

NetworkKingPin
fuente
Muy bien, David, entiendo lo que querías decir, se ha ocupado ahora.
NetworkKingPin
2
Eso es mucho mejor;)
DavidPostill
6

Para ser honesto, si todo lo que quiere hacer es rebotar (con fuerza) un cuadro, la forma más fácil es "presionar el interruptor de reinicio".

Dado que necesita hacer un restablecimiento DURO, puede meterse en el extremo de alto voltaje (bastante arriesgado) o hacerlo en la placa base.

Algunas placas base de alta gama tienen una tarjeta de red / controlador incorporado para hacer rebotar la PC. Sin embargo, también puede conectar el interruptor de reinicio a una placa de relé y controlarlo usando una máquina separada.

Aconsejaría conectar una Raspberry Pi a través de GPIO a una placa de relé. Luego conecte cada relé al interruptor de reinicio en las placas base.

Raspberry Pi 2

Sombrero de relé Raspberry Pi

Aron
fuente
3

¿Ha considerado ejecutar su servidor como cliente en una máquina virtual? Ejecutaría el software VM (VMware, VirtualBox) en el servidor físico, luego ejecutaría una máquina virtual con su software de representación como cliente. Sin ningún otro procesamiento en la máquina, debería obtener un rendimiento comparable, y sería más fácil detener y reiniciar una máquina virtual que una física.

TMN
fuente
3
Sé a dónde va con el concepto de máquina virtual, pero su declaración sobre el rendimiento comparable no tiene mucho sentido.
juego de palabras
¿Cómo es eso? Básicamente, solo está envolviendo un servidor físico con una VM y ejecutándolo en el mismo hardware. No es como si estuviera intentando ejecutar varias máquinas virtuales. Según este documento de 2009 "si está utilizando las tecnologías VMware o Xen de este año, Intel Nehalems y Shanghai Opterons y los nuevos adaptadores de E / S, la virtualización tiene la mayoría de los problemas de rendimiento bastante superados". No creo que la virtualización haya retrocedido mucho desde entonces.
TMN
1
Olvidé mencionar: esta es una granja de renderizado, por lo que la mayoría del trabajo lo realizan las tarjetas gráficas, y su rendimiento no se verá afectado al ejecutar el host en una VM.
TMN
1
El acceso de la máquina virtual a las GPU puede ser complicado (muy específico de la máquina virtual, muy específico de la tarjeta, si es compatible), así que verifique que funcione para usted.
toddkaufmann
1

Le sugiero que investigue si las placas base de estas máquinas tienen un temporizador de vigilancia a bordo. Creo que estos son razonablemente comunes al menos con los conjuntos de chips Intel. Si el hardware de vigilancia está presente, busque el software de Windows adecuado para configurar el temporizador y reinícielo regularmente siempre que la máquina permanezca sin congelar. Si la máquina se congela, el software ya no podrá reiniciar el temporizador y el perro guardián reiniciará la máquina. Eso al menos debería resolver el sistema duro se congela.

Dependiendo del software, es posible que pueda agregar requisitos adicionales para el restablecimiento del temporizador, como la conectividad de red, el proceso de procesamiento aún en ejecución, el proceso de procesamiento progresó desde el último restablecimiento del temporizador o similar. No conozco el software disponible en Windows, solo he estado usando watchdogs en Linux hasta ahora.

MvG
fuente
-1

Aquí se describe una solución creativa

Los chicos resolvieron un problema similar con 2 PC que se enfrentaban entre sí. Cuando llegó el correo electrónico, la computadora abrió (y luego cerró) el avance del CD, por lo que presionó el botón de reinicio en la otra PC.

Por supuesto, puede usar cualquier otra cosa, que pueda señalizarse y mover cualquier parte hacia atrás y hacia allá (como un servo conectado a algo: puerto paralelo de una PC vieja, GPIO de Rapsberry o Arduino, o simplemente cualquier otra cosa que tenga)

gilhad
fuente
1
Lectura divertida, pero incluya las partes importantes en su publicación: las respuestas deben ser lo más independientes posible.
Ben N