É possível reiniciar um computador em resposta a uma notificação por email?

29

Estou procurando uma maneira de reinicializar as máquinas depois de receber uma notificação por e-mail.

A configuração em que quero usar isso é um farm de renderização. Temos 5 caixas com 8 Nvidia GTX 980Ti nelas. Eles estão executando o Windows 10 Professional de 64 bits.

O problema que estamos tendo é que às vezes eles congelam ou "param" durante a renderização. Eu configurei para que, quando isso acontecer, eu receba um e-mail com a mensagem "x machine has stalled".

Eu automatizei tudo nas máquinas; eles fazem login automaticamente, abrem os programas necessários, iniciam uma conexão com nosso servidor de licenças e mapeiam todas as unidades de rede necessárias.

Basicamente tudo o que você precisa fazer é desligá-lo e ligá-lo novamente, e isso funciona novamente.

Então, o que eu estou querendo saber é, posso configurar um programa, evento ou um script que diga às máquinas para reiniciar depois que eu receber o e-mail dizendo que uma máquina parou?

A máquina que irá rodar esta executando o Windows 7 Pro de 64 bits.

    
por RyanIG 17.04.2016 / 13:23

8 respostas

44

Você quer um dispositivo chamado "Remote Power Switch", que usamos no meu local de trabalho para reiniciar remotamente os modems a cabo é o UIS-322b abaixo:

Vocêpodeconfigurá-locomumendereçoIPe,emseguida,efetuarloginparaligar,desligarouligaredesligarodispositivoconectadoeconfigurá-lodeacordocomaprogramação.Vocênãopodecontrolá-loviae-mail,masatravésdainterfaceweb.VocêaindapodemanipularalgoviawgetoucurlparaenviarautomaticamenteumasolicitaçãodaWebparaele.Podeteroutrosrecursosepossibilidadesdecontrolequenãoconheço.

Sevocêestiverexecutandosistemasderenderizaçãoqueconsomemmuitaenergia,nãotenhocertezaseodispositivoespecíficoacimapodemanipulá-los,maspodehaveroutrosquefaçamisso.Outracoisaaprocuraré"Power Strip Controlável".

    
por 17.04.2016 / 14:31
33

Posso configurar um programa, evento ou um script que instrua as máquinas a serem reinicializadas?

Depende do que você quer dizer com:

they freeze or "stall"

Se a máquina remota tiver interrompido de uma maneira que exija uma "reinicialização a frio", a reinicialização remota não funcionará.

Dito isto, pode utilizar o shutdown para reiniciar remotamente um dispositivo.

Exemplo:

shutdown /r /f /m \computer
  • /r - Desligue e reinicie o computador.

  • /f - Força a execução de aplicativos para fechar sem avisar os usuários.

  • /m \computer - Especifique o computador de destino.

Você pode executar o comando acima no Outlook quando receber o email apropriado.

O seguinte link Como : Acionar um aplicativo por e-mail no Outlook deve começar.

shutdown usage

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).

Leitura Adicional

por 17.04.2016 / 13:45
16

Se você tiver servidores reais , eles provavelmente têm um recurso de gerenciamento remoto que pode ser conectado mesmo se o sistema operacional principal da máquina estiver completamente congelado. Geralmente, você usa o SSH para se conectar ao controlador. O comando específico emitido depende da marca do seu servidor.

Para os servidores Dell, que usam o DRAC (Dell Remote Access Controller), o comando para executar após o SSH no DRAC é:

racadm serveraction hardreset

Isso realiza uma reinicialização a frio, equivalente a arrancar o cabo de alimentação e depois reiniciar a máquina. Se a máquina não estiver completamente suspensa, powercycle em vez de hardreset poderá fazer o trabalho. ( Fonte. )

Os servidores da HP usam o iLO, que também é acessível por SSH. O comando de reinicialização forçada é simplesmente:

reset hard

( Origem , a referência oficial do PDF ao script do iLO.)

Você pode conectar o recebimento de e-mail à execução desses comandos com a resposta de DavidPostill. Existem clientes SSH para o Windows; Eu acredito que o PuTTY tem uma interface de linha de comando.

    
por 17.04.2016 / 17:22
13

Use o Outlook.

O link na parte inferior da resposta contém informações que ajudaram nessa resposta. Kudos para GuidingTech.com

Crie um arquivo .bat primeiro.

shutdown.exe /r /t 00

Salvar como Restart.bat

Certifique-se de que o computador esteja logado com o e-mail no qual você recebe o e-mail Notificação.

Você pode configurar contas diferentes para cada computador, se desejar, e ter sua configuração de e-mail para encaminhar e-mails recebidos como notificações.

Exemplo.

[email protected] é o PC Host com uma placa gráfica que não é renderizada.

Testemail.com é o seu e-mail em que você recebe notificações.

Quando o e-mail é recebido, seu outlook auto encaminha o e-mail de volta para o  email correspondente. que neste caso é [email protected]

[email protected] recebido em [email protected] então envie esse e-mail para todos os computadores.

O truque aqui é configurar um e-mail de notificação diferente para cada computador, para que ele saiba o que fazer.

Para configurar uma regra para encaminhar, siga estas instruções e insira uma palavra no assunto com base no computador que você deseja reiniciar.

Nota: Isto é para configurar o seu computador que você recebe os e-mails em seguida vamos configurar os computadores individuais.

Step 1. Now open MS Outlook. Under Home tab, go to Rules and expand the >menu. Select Manage Rules and Alerts. enter image description here

Step 2. On the Rules and Alerts window chick on New Rule while under Email >Rules tab. enter image description here

Step 3. Start off by selecting your template as Apply rule on messages I >receive. Click on Next. enter image description here

Step 4. Once again we need to specify which rule you want to use on the Receiving end which will be the Computer the forwarded email shows up at. This will be the rule for restarting the Computer you Specified.

A. With specific words in the subject– Another constraint so that the >receiving email is identified better.

B. With specific words in the body– Sometimes, only the subject may be >ambiguous. So a body makes it more refined.

Select them and hit next.

enter image description here

Agora especifique o que você deseja que o e-mail procure para acionar o reinício.

Exemplo, se você escolher o assunto.

Digamos que a palavra escolhida seja Computer1-RenderIssue

Você digitará isso no "Especificar para palavras ou frases para pesquisar no subheto"

Agora que você tem essa configuração, é hora de dar o passo final.

Step 5. Next comes the action to be applied when an email is received and >all the conditions match. Select start application and delete it. enter image description here

**Note:**If you do not delete it. If the computer is restarted it if outlook opens it will go in a loop.

Step 5a For starting application action, click on the link and select the file you created Restart.bat Click on Next.

Step 5b Click next on *"Are there any Exceptions?"

Step 6 Give the rule a name for future references, turn it on and click on >Finish.

Agora, sempre que um de vocês tiver um problema ao Renderizar o E-mail, ele será enviado para você com o Computador Especificado. Isso encaminhará o email para esse computador e reiniciará a máquina.

Espero que isso ajude. Tentei formatá-lo o melhor que pude enquanto fazia meu trabalho.

Referência para alguns dos trabalhos aqui

    
por 18.04.2016 / 08:11
6

Para ser honesto, se tudo o que você quer fazer é (hard) devolver uma caixa, a maneira mais fácil é "pressionar o botão de reset".

Já que você precisa fazer um reset HARD, você pode mexer no final do High Voltage (bastante arriscado), ou fazê-lo na placa-mãe.

Algumas placas-mãe high-end possuem uma placa de rede / controladora embutida para fazer o PC saltar. No entanto, você também pode conectar a chave de reset a uma placa de relé e controlá-la usando uma máquina separada.

Eu aconselho conectar um Raspberry Pi através do GPIO a uma placa de relé. Em seguida, conecte cada relé ao botão de reset nas placas-mãe.

    
por 18.04.2016 / 06:59
3

Já considerou a execução do seu servidor como um cliente em uma máquina virtual? Você executaria o software de VM (VMware, VirtualBox) no servidor físico e, em seguida, executaria uma máquina virtual com seu software de renderização como cliente. Com nenhum outro processamento em andamento na máquina, você deve obter desempenho comparável, e seria mais fácil parar e reiniciar uma máquina virtual do que uma física.

    
por 18.04.2016 / 16:06
1

Eu sugiro que você investigue se as placas-mãe dessas máquinas têm um temporizador de monitoramento a bordo. Eu acredito que estes são razoavelmente comuns, pelo menos, com chipsets da Intel. Se o hardware watchdog estiver presente, encontre o software Windows adequado para configurar o temporizador e redefina-o regularmente, desde que a máquina permaneça descongelada. Se a máquina congela, o software não poderá reinicializar mais o temporizador e o watchdog redefinirá a máquina. Isso deve pelo menos resolver o sistema rígido congela.

Dependendo do software, você pode adicionar requisitos adicionais para a redefinição do cronômetro, como conectividade de rede, processo de renderização ainda em execução, processo de renderização feito algum progresso desde a última redefinição do cronômetro ou semelhante. Eu não sei o software disponível no Windows, eu só tenho usando watchdogs no Linux até agora.

    
por 19.04.2016 / 23:48
-1

Uma solução criativa é descrita aqui

Os garotos resolveram um problema parecido com 2 PC em pé um contra o outro. Quando o email chegou, o computador abriu (e depois fechou) o CD trailer, então ele apertou o botão reset no outro PC.

É claro que você pode usar qualquer outra coisa, que é capaz de sinalizar e mover qualquer parte para lá e para trás (como servo conectado a algo - porta paralela do antigo PC, GPIO do Rapsberry ou Arduino, ou qualquer outra coisa que você tenha ao redor)

    
por 19.04.2016 / 13:42