È possibile riavviare un computer in risposta a una notifica e-mail?


29

Sto cercando un modo per riavviare i computer dopo aver ricevuto una notifica via email.

L'impostazione su cui voglio utilizzare questo è una farm di rendering. Abbiamo 5 scatole con 8 Nvidia GTX 980Ti in esse. Stanno eseguendo Windows 10 Professional a 64 bit.

Il problema che stiamo riscontrando è che a volte si bloccano o "si bloccano" durante il rendering. L'ho configurato, quindi una volta che ciò accade, ricevo un'email che dice "x la macchina si è fermata".

Ho automatizzato tutto sulle macchine; accedono automaticamente, aprono i programmi necessari, avviano una connessione con il nostro server delle licenze e mappano tutte le unità di rete richieste.

Fondamentalmente tutto ciò che devi fare è spegnerlo e riaccenderlo e funziona di nuovo.

Quindi quello che mi chiedo è: posso impostare un programma, un evento o uno script che dirà alle macchine di riavviarsi dopo aver ricevuto l'e-mail che dice che una macchina si è bloccata?

Il computer che eseguirà questo sta eseguendo Windows 7 Pro 64-bit.


3
Sai cos'è lo stallo e con quale frequenza? Un piano migliore forse per riavviare il computer ogni giorno evitando la stalla tutti insieme
Shaun07776,

@ Shaun07776 Sfortunatamente questo è il problema, è casuale, ho inviato il file di registro dopo il file di registro a ciascun fornitore di software che stiamo usando cercando di risolvere questo problema, al momento non sappiamo cosa li sta causando o quando succede, ed è per questo che sto cercando di automatizzare tutto ciò che posso nel frattempo fino a quando non lo scopriremo.
RyanIG,

23
Perché non è possibile eseguire il lavoro che rileva lo stallo e invia l'e-mail semplicemente riavviandolo? Perché l'e-mail deve essere il trigger?
esussum,

@exussum Il programma che stiamo usando è chiamato Deadline 7.2, è pensato per fare questo, l'ho configurato in modo che il software lo faccia, ma non funziona per qualche motivo, il programma consente lo scripting Python attraverso un servizio web ma io non riesco nemmeno a farlo.
RyanIG,

@RyanIG - Solo per curiosità, è necessario un tipo speciale di procedura di spegnimento, la macchina non è abbastanza reattiva?
stefgosselin,

Risposte:


44

Volete un dispositivo chiamato "Remote Power Switch", uno che abbiamo usato sul mio posto di lavoro per riavviare in remoto i modem via cavo è l'UIS-322b di seguito:

inserisci qui la descrizione dell'immagine

È possibile configurarlo con un indirizzo IP, quindi accedere ad esso per accendere, spegnere o spegnere e riaccendere entrambi i dispositivi collegati e impostarlo su un programma. Non puoi controllarlo via e-mail, ma attraverso l'interfaccia web. Potresti comunque truccare qualcosa tramite wgeto curlinviare automaticamente una richiesta web ad esso. Potrebbe avere altre funzionalità e possibilità di controllo di cui non sono a conoscenza.

Se stai eseguendo sistemi di rendering che consumano molta energia, non sono sicuro che il dispositivo specifico sopra in grado di gestirli, ma potrebbero essercene altri là fuori che lo fanno. Un'altra cosa da cercare è "Power Strip controllabile".


15
Fondamentalmente da remoto scollega e collega il dispositivo per te.
LawrenceC,

1
Esistono anche dispositivi simili progettati per l'utilizzo del data center. Questi sono progettati per essere montati in un rack e hanno molte più porte di uscita. Quelli che ho visto erano controllati su RS-232. In questo modo è possibile collegarli a un'unità con molte porte RS-232 in modo tale da consentire a questa unità di rimuovere la console e spegnere e riaccendere in remoto tutti i singoli server in un intero rack.
Kasperd,

1
Alcuni UPS possono fornire anche questa funzionalità. È possibile connettersi all'UPS (tramite HTTP o Telnet o software rilasciato dal produttore) per connettersi tramite un cavo (Ethernet o "cavo seriale"). I dettagli specifici variano in base alle singole soluzioni. Alcuni UPS lo supportano solo quando si utilizza una scheda aggiuntiva (inserita nell'UPS), acquistata separatamente. Immagino che siano più costosi del dispositivo mostrato da LawrenceC, perché gli UPS offrono anche la funzione di backup della batteria. Tuttavia, il costo più elevato può essere accettabile a causa dell'inclusione della funzione extra utile.
TOOGAM,

1
Esiste un software che fa parte di Red Hat Cluster Suite chiamato agenti di scherma, che fornisce un'interfaccia CLI astratta per il riavvio di questi dispositivi, incluso KVM come dispositivo di "power fencing". Mi è stato utile.
Nessun nome utente il

4
@RyanIG Forse puoi impostare uno di questi dispositivi in ​​modo che eseguano il ripristino hardware automaticamente ogni 10 minuti circa, a meno che non ricevano un comando via Ethernet. Quindi è possibile collegare i computer al proprio alimentatore e consentire loro di inviare il comando non riavviare ogni 3 minuti circa. Se il computer si blocca, interromperà anche l'invio del comando e verrà ripristinato. Fondamentalmente è ciò che viene chiamato un "watch dog (timer)" nei sistemi integrati e aggirerebbe l'intera comunicazione e-mail.
null

33

Posso impostare un programma, un evento o uno script che dirà alle macchine di riavviare?

Dipende da cosa intendi per:

si congelano o "si bloccano"

Se il computer remoto si è bloccato in un modo che richiede un "hard reset", un riavvio remoto non funzionerà.

Detto questo, è possibile utilizzare shutdownper riavviare in remoto un dispositivo.

Esempio:

shutdown /r /f /m \\computer
  • /r - Arresta e riavvia il computer.

  • /f - Forza la chiusura delle applicazioni in esecuzione senza avvisare gli utenti.

  • /m \\computer - Specifica il computer di destinazione.

È possibile eseguire il comando sopra da Outlook quando si riceve l'e-mail appropriata.

Il seguente collegamento Procedura: Attivare un'applicazione via e-mail in Outlook dovrebbe iniziare.


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

Ulteriori letture


2
Grazie per la risposta veloce! Quando "Congelano o Stallo" a volte il sistema è completamente bloccato e richiede un riavvio difficile, altre volte è possibile evitarlo riavviandolo dalla riga di comando o tramite il team-viewer. questo problema sto avendo a capire come collegare gli script all'e-mail, avresti thread o risorse su come fare questo? Stiamo usando Gmail, ma potrei eseguirlo tramite Outlook, se necessario. Saluti!
RyanIG,

Nessun problema, grazie per l'aiuto comunque! continuerò a scavare.
RyanIG,

@RyanIG How To: Attivare un'applicazione via e-mail in Outlook dovrebbe darti un punto di partenza. Risposta aggiornata
DavidPostill

16

Se si dispone di server effettivi , è probabile che dispongano di una funzionalità di gestione remota a cui è possibile connettersi anche se il sistema operativo principale della macchina è completamente bloccato. In genere, si utilizza SSH per connettersi al controller. Il comando specifico emesso dipende dalla marca del server.

Per i server Dell, che utilizzano DRAC (Dell Remote Access Controller), il comando da eseguire dopo SSH nel DRAC è:

racadm serveraction hardreset

Ciò esegue un hard reset, equivalente a strappare il cavo di alimentazione e quindi riavviare la macchina. Se la macchina non è completamente bloccata, powercycleinvece di hardresetfare il lavoro. ( Fonte. )

I server HP utilizzano iLO, che è accessibile anche tramite SSH. Il comando hard reset è semplicemente:

reset hard

( Fonte , riferimento PDF ufficiale allo scripting iLO.)

Puoi collegare l'e-mail di ricezione all'esecuzione di questi comandi con la risposta di DavidPostill. Esistono client SSH per Windows; Credo che PuTTY abbia un'interfaccia a riga di comando.


Devo dare un'occhiata a questo mentre usiamo 3 server powerblade dell, domanda veloce però, deve essere sul controller di dominio o se avessimo un server licenze potrebbe essere impostato su quello? le macchine sono costantemente collegate ad entrambi. Grazie per la tua risposta!
RyanIG,

1
Il DRAC dovrebbe essere accessibile da qualsiasi punto della stessa rete. Pertanto, qualsiasi computer in grado di ricevere l'e-mail e raggiungere il DRAC dovrebbe essere in grado di gestire l'intero sistema.
Ben N,

Fantastico, malato guarda in questo e ti faccio sapere come vado avanti, evviva!
RyanIG,

13

Usa Outlook.

Il link in fondo alla risposta contiene informazioni che hanno aiutato con questa risposta. Complimenti a GuidingTech.com

Creare prima un file .bat.

shutdown.exe /r /t 00

Salva come Restart.bat

Assicurati che il computer abbia effettuato l'accesso con l'e-mail in cui ricevi l'email di notifica.

Se lo desideri, puoi configurare account diversi per ogni computer e configurare la tua e-mail per inoltrare le e-mail che ricevi come notifiche.

Esempio.

Computer1@email.com è il PC host con una scheda grafica che non esegue il rendering.

Testemail.com è la tua email su cui ricevi le notifiche.

Quando l'e-mail viene ricevuta, la tua prospettiva inoltra automaticamente l'e-mail all'email corrispondente. che in questo caso è Computer1@gmail.com

Computer1@email.com ricevuto su Testemail@email.com quindi inoltrare l'email a tutti i computer.

Il trucco qui è di impostare una diversa e-mail di notifica per ogni computer in modo che sappia quale chiudere.

Per impostare una regola da inoltrare, segui queste istruzioni e inserisci una parola nell'oggetto in base al PC che desideri riavviare.

Nota: questo serve per configurare il tuo computer al quale riceverai le e-mail dopo che configureremo i singoli PC.

Passaggio 1. Ora apri MS Outlook. Nella scheda Home, vai su Regole ed espandi il menu>. Seleziona Gestisci regole e avvisi. inserisci qui la descrizione dell'immagine

Passaggio 2. Nella finestra Regole e avvisi, selezionare Nuova regola mentre si è in Email> scheda Regole. inserisci qui la descrizione dell'immagine

Passaggio 3. Inizia selezionando il tuo modello come Applica regola sui messaggi I> ricevi. Clicca su Avanti. inserisci qui la descrizione dell'immagine

Passaggio 4. Ancora una volta è necessario specificare quale regola si desidera utilizzare sul lato di ricezione quale sarà il computer in cui viene visualizzata l'e-mail inoltrata. Questa sarà la regola per riavviare il computer specificato.

A. Con parole specifiche nell'oggetto: un altro vincolo affinché l'email di ricezione sia identificata meglio.

B. Con parole specifiche nel corpo - A volte, solo il soggetto può essere> ambiguo. Quindi un corpo lo rende più raffinato.

Selezionali e premi il prossimo.

inserisci qui la descrizione dell'immagine

Ora specifica cosa vuoi che l'e-mail cerchi per attivare il riavvio.

Esempio se si sceglie soggetto.

Pronuncia la parola che scegli è Computer1-RenderIssue

Lo digiterai nel "Specifica parole o frasi da cercare nel subhect"

Ora che hai la configurazione è il momento di fare il passo finale.

Passaggio 5. Segue l'azione da applicare quando si riceve un'email e> tutte le condizioni corrispondono. Seleziona avvia l'applicazione ed eliminala. inserisci qui la descrizione dell'immagine

** Nota: ** Se non lo si elimina. Se il computer viene riavviato se Outlook si apre, andrà in loop.

Passaggio 5a Per avviare l'azione dell'applicazione, fare clic sul collegamento e selezionare il file creato Restart.bat Fare clic su Avanti.

Passaggio 5b Fare clic su Avanti su "" Esistono eccezioni? "

Passaggio 6 Assegnare alla regola un nome per riferimenti futuri, attivarla e fare clic su> Fine.

Ora ogni volta che uno di voi ha un problema durante il rendering dell'e-mail, vi verrà inviato con il computer specificato. Ciò inoltrerà l'e-mail a quel computer e riavvierà la macchina.

Spero che sia di aiuto. Ho cercato di formattarlo il meglio che potevo mentre facevo il mio lavoro.

Riferimento per alcuni dei lavori qui


Bene David, ho capito cosa volevi dire adesso.
NetworkKingPin,

2
Molto meglio;)
David Post

6

Ad essere onesti, se tutto ciò che vuoi fare è far rimbalzare (duro) una scatola, il modo più semplice è "premere l'interruttore di ripristino".

Dal momento che è necessario eseguire un ripristino HARD, è possibile scherzare sull'estremità dell'alta tensione (piuttosto rischioso) o farlo sulla scheda madre.

Alcune schede madri di fascia alta hanno una scheda di rete / controller integrato per far rimbalzare il PC. Tuttavia, è anche possibile collegare l'interruttore di ripristino a una scheda relè e controllarlo utilizzando una macchina separata.

Consiglio di collegare un Raspberry Pi tramite GPIO a una scheda relè. Quindi collegare ciascun relè all'interruttore di ripristino sulle schede madri.

Raspberry Pi 2

CAPPELLO relè Raspberry Pi


3

Hai considerato di eseguire il tuo server come client su una macchina virtuale? Avresti eseguito il software VM (VMware, VirtualBox) sul server fisico, quindi avresti eseguito una macchina virtuale con il tuo software di rendering come client. Senza altra elaborazione in corso sulla macchina, è necessario ottenere prestazioni comparabili e sarebbe più facile arrestare e riavviare una macchina virtuale rispetto a una fisica.


3
So dove stai andando con il concetto di macchina virtuale ma la tua affermazione su prestazioni comparabili non ha molto senso.
gioco di

Come mai? Fondamentalmente stai semplicemente avvolgendo un server fisico con una VM ed eseguendolo sullo stesso hardware. Non è come se stessi tentando di eseguire più VM. Secondo questo articolo del 2009 "se si utilizzano le tecnologie VMware o Xen di quest'anno, Intel Nehalems e Shanghai Opterons e i nuovi adattatori di I / O - la virtualizzazione presenta quasi tutti i problemi relativi alle prestazioni". Non immagino che la virtualizzazione sia molto indietro da allora.
TMN,

1
Hai dimenticato di menzionare: questa è una farm di rendering, quindi la maggior parte del lavoro viene svolto dalle schede grafiche e le loro prestazioni non verranno degradate eseguendo l'host in una VM.
TMN,

1
L'accesso delle VM alle GPU può essere complicato (molto specifico per VM, molto specifico per scheda, se supportato), quindi verifica che funzioni per te.
toddkaufmann

1

Vorrei suggerire di indagare se le schede madri di queste macchine hanno un timer watchdog a bordo. Credo che questi siano ragionevolmente comuni almeno con i chipset Intel. Se è presente l'hardware del watchdog, trovare il software Windows adatto per impostare il timer e ripristinarlo regolarmente finché la macchina non viene congelata. Se la macchina si blocca, il software non sarà più in grado di ripristinare il timer e il watchdog ripristinerà la macchina. Ciò dovrebbe almeno risolvere i blocchi del sistema rigido.

A seconda del software, potresti essere in grado di aggiungere ulteriori requisiti per il ripristino del timer, come la connettività di rete, il processo di rendering è ancora in esecuzione, il processo di rendering ha fatto alcuni progressi dall'ultimo ripristino del timer o simili. Non conosco software disponibile su Windows, finora ho usato solo cani da guardia su Linux .


-1

Una soluzione creativa è descritta qui

I ragazzi hanno risolto un problema simile con 2 PC in piedi uno contro l'altro. Quando è arrivata la posta elettronica, il computer ha aperto (e quindi chiuso) il trailer del CD, quindi ha premuto il pulsante di ripristino sull'altro PC.

Ovviamente puoi usare qualsiasi altra cosa, che è in grado di essere segnalato e spostare qualsiasi parte avanti e indietro (come un servo collegato a qualcosa - porta parallela del vecchio PC, GPIO di Rapsberry o Arduino, o qualsiasi altra cosa tu abbia in giro)


1
Lettura divertente, ma per favore includi le parti importanti nel tuo post - le risposte dovrebbero essere il più autosufficienti possibile.
Ben N
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.