Est-il possible de redémarrer un ordinateur en réponse à une notification par e-mail?

29

Je cherche un moyen de redémarrer les machines après avoir reçu une notification par e-mail.

La configuration sur laquelle je veux l'utiliser est une ferme de rendu. Nous avons 5 boîtes contenant 8 Nvidia GTX 980Ti. Ils exécutent Windows 10 Professionnel 64 bits.

Le problème que nous rencontrons est qu'ils gèlent ou "bloquent" parfois pendant le rendu. Je l'ai installé, donc une fois que cela se produit, je reçois un e-mail disant "la machine x est au point mort".

J'ai tout automatisé sur les machines; ils se connectent automatiquement, ouvrent les programmes nécessaires, établissent une connexion avec notre serveur de licences et mappent tous les lecteurs réseau requis.

Fondamentalement, tout ce que vous avez à faire est de l'éteindre et de le rallumer, et cela fonctionne à nouveau.

Donc, ce que je me demande, est-ce que je peux configurer un programme, un événement ou un script qui dira aux machines de redémarrer après avoir reçu l'e-mail disant qu'une machine est au point mort?

La machine qui l'exécutera exécute Windows 7 Pro 64 bits.

RyanIG
la source
3
Savez-vous ce qui cale et à quelle fréquence? Un meilleur plan peut-être de faire redémarrer l'ordinateur quotidiennement en évitant le décrochage tous ensemble
Shaun07776
@ Shaun07776 Malheureusement, c'est le problème, il est aléatoire, j'ai envoyé un fichier journal après fichier journal à chaque fournisseur de logiciels que nous utilisons pour essayer de résoudre ce problème, pour l'instant nous ne savons pas ce qui les cause, ou quand ils arriver, c'est pourquoi j'essaie d'automatiser tout ce que je peux en attendant jusqu'à ce que nous le découvrions.
RyanIG
23
Pourquoi ne pouvez-vous pas effectuer le travail qui détecte le décrochage et envoie l'e-mail tout simplement le redémarrer? Pourquoi l'e-mail doit-il être le déclencheur?
exussum
@exussum Le programme que nous utilisons est appelé Deadline 7.2, il est destiné à le faire, je l'ai configuré pour que le logiciel le fasse, mais cela ne fonctionne pas pour une raison quelconque, le programme permet l'écriture de scripts python via un service Web, mais je ne peut pas faire grand-chose non plus.
RyanIG
@RyanIG - Juste par curiosité, cela nécessite-t-il une sorte de procédure d'arrêt spéciale, la machine n'est pas suffisamment réactive?
stefgosselin

Réponses:

44

Vous voulez un appareil appelé "Remote Power Switch", celui que nous avons utilisé sur mon lieu de travail pour redémarrer à distance les modems câbles est l'UIS-322b ci-dessous:

entrez la description de l'image ici

Vous pouvez le configurer avec une adresse IP, puis vous y connecter pour allumer, éteindre ou éteindre ou rallumer l'un ou l'autre des appareils connectés, et le configurer selon un calendrier. Vous ne pouvez pas le contrôler par e-mail, mais via l'interface Web. Vous pouvez toujours truquer quelque chose via wgetou curlpour lui envoyer automatiquement une demande Web. Il peut avoir d'autres fonctionnalités et possibilités de contrôle que je ne connais pas.

Si vous utilisez des systèmes de rendu qui consomment beaucoup d'énergie, je ne sais pas si le périphérique spécifique ci-dessus peut les gérer, mais il peut y en avoir d'autres qui le font. Une autre chose à rechercher est "Power Strip contrôlable".

LawrenceC
la source
15
Il débranche et branche à distance l'appareil pour vous.
LawrenceC
1
Il existe également des appareils similaires conçus pour l'utilisation du centre de données. Ceux-ci sont conçus pour être montés dans un rack et ont beaucoup plus de ports de sortie. Ceux que j'ai vus étaient contrôlés via RS-232. De cette façon, vous pouvez les connecter à une unité dotée de nombreux ports RS-232, de sorte que cette seule unité vous permette de supprimer la console et le cycle d'alimentation à distance de tous les serveurs individuels d'un rack entier.
kasperd
1
Certains onduleurs peuvent également fournir cette fonctionnalité. Vous pouvez vous connecter à l'onduleur (via HTTP, ou Telnet, ou un logiciel fourni par le fabricant) pour vous connecter via un câble (Ethernet ou un "câble série"). Les détails spécifiques varient en fonction des solutions individuelles. Certains onduleurs ne prennent en charge cela que lorsque vous utilisez une carte d'extension (insérée dans l'onduleur), achetée séparément. J'imagine qu'ils sont plus chers que l'appareil LawrenceC montre, car les onduleurs offrent également la possibilité d'être sauvegardés sur batterie. Cependant, le coût plus élevé peut être acceptable en raison de l'inclusion de la fonction supplémentaire utile.
TOOGAM
1
Il existe des logiciels qui font partie de la suite de clusters Red Hat appelés agents d’escrime, qui fournissent une interface CLI abstraite pour redémarrer ces périphériques, y compris KVM en tant que périphérique de «Power Fencing». Cela m'a été utile.
Pas de nom d'utilisateur le
4
@RyanIG Vous pouvez peut-être configurer l'un de ces appareils pour qu'ils effectuent automatiquement la réinitialisation matérielle toutes les 10 minutes environ, à moins qu'ils n'obtiennent une commande via Ethernet. Ensuite, vous pouvez brancher les ordinateurs à leur propre alimentation et les laisser envoyer la commande Don't reboot me toutes les 3 minutes environ. Si l'ordinateur se bloque, il cessera également d'envoyer la commande et obtiendra une réinitialisation matérielle. C'est fondamentalement ce qu'on appelle un "chien de garde (minuterie)" dans les systèmes embarqués et il contournerait toute la communication par e-mail.
null
33

Puis-je configurer un programme, un événement ou un script qui indiquera aux machines de redémarrer?

Cela dépend de ce que vous entendez par:

ils gèlent ou "calent"

Si la machine distante s'est bloquée d'une manière qui nécessite une "réinitialisation matérielle", un redémarrage à distance ne fonctionnera pas.

Cela dit, vous pouvez utiliser shutdownpour redémarrer à distance un appareil.

Exemple:

shutdown /r /f /m \\computer
  • /r - Arrêtez et redémarrez l'ordinateur.

  • /f - Forcer la fermeture des applications en cours d'exécution sans avertir les utilisateurs.

  • /m \\computer - Spécifiez l'ordinateur cible.

Vous pouvez exécuter la commande ci-dessus à partir d'Outlook lorsque vous recevez l'e-mail approprié.

Le lien suivant Comment: déclencher une application par e-mail dans Outlook devrait vous aider à démarrer.


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

Lectures complémentaires

DavidPostill
la source
2
Merci pour la réponse rapide! Quand ils "gèlent ou bloquent", parfois le système est complètement bloqué et il nécessite un redémarrage dur, d'autres fois, vous pouvez vous en sortir en le redémarrant via la ligne de commande ou via le visualiseur d'équipe. ce problème que j'ai avec la façon de lier les scripts à l'e-mail, auriez-vous des discussions ou des ressources sur la façon de le faire? Nous utilisons gmail mais je pourrais l'exécuter via Outlook si nécessaire. à votre santé!
RyanIG
Pas de soucis, merci pour votre aide quand même! continuer à creuser.
RyanIG
@RyanIG How To: Déclencher une application par e-mail dans Outlook devrait vous donner un point de départ. Réponse mise à jour.
DavidPostill
16

Si vous avez de vrais serveurs , ils ont probablement une fonction de gestion à distance à laquelle vous pouvez vous connecter même si le système d'exploitation principal de la machine est complètement gelé. Généralement, vous utilisez SSH pour vous connecter au contrôleur. La commande spécifique émise dépend de la marque de votre serveur.

Pour les serveurs Dell, qui utilisent DRAC (Dell Remote Access Controller), la commande à exécuter après SSH dans le DRAC est:

racadm serveraction hardreset

Cela effectue une réinitialisation matérielle, équivalente à retirer le cordon d'alimentation, puis à redémarrer la machine. Si la machine n'est pas complètement bloquée, powercycleau lieu de hardresetfaire le travail. ( Source. )

Les serveurs HP utilisent iLO, qui est également accessible via SSH. La commande de réinitialisation matérielle est simplement:

reset hard

( Source , la référence PDF officielle aux scripts iLO.)

Vous pouvez câbler le courrier électronique reçu à l'exécution de ces commandes avec la réponse de DavidPostill. Il existe des clients SSH pour Windows; Je crois que PuTTY a une interface en ligne de commande.

Ben N
la source
Je vais y jeter un œil car nous utilisons 3 serveurs Dell Powerblade, une question rapide cependant, doit-il être sur le contrôleur de domaine ou si nous avions un serveur de licences, pourrait-il être configuré sur cela? les machines sont constamment connectées aux deux. Merci pour votre réponse!
RyanIG
1
Le DRAC doit être accessible de n'importe où sur le même réseau. Par conséquent, tout ordinateur qui peut recevoir le courrier électronique et atteindre le DRAC doit être capable de gérer l'ensemble du système.
Ben N
Génial, mauvais regard sur cela et vous faire savoir comment je vais, bravo!
RyanIG
13

Utilisez Outlook.

Le lien au bas de la réponse contient des informations qui ont aidé à cette réponse. Bravo à GuidingTech.com

Créez d'abord un fichier .bat.

shutdown.exe /r /t 00

Enregistrer sous Restart.bat

Assurez-vous que l'ordinateur est connecté avec l'e-mail dans lequel vous recevez la notification par e-mail.

Vous pouvez configurer différents comptes pour chaque ordinateur si vous le souhaitez et configurer votre messagerie pour transférer les e-mails que vous recevez sous forme de notifications.

Exemple.

[email protected] est le PC hôte avec une carte graphique qui n'est pas de rendu.

Testemail.com est votre e-mail sur lequel vous recevez des notifications.

Lorsque l'e-mail est reçu, votre Outlook transfère automatiquement l'e-mail à l'e-mail correspondant. qui dans ce cas est [email protected]

[email protected] reçu à [email protected] puis envoyez cet e-mail à tous les ordinateurs.

L'astuce consiste à configurer un e-mail de notification différent pour chaque ordinateur afin qu'il sache lequel arrêter.

Pour configurer une règle à transmettre, suivez ces instructions et entrez un mot dans le sujet en fonction du PC que vous souhaitez redémarrer.

Remarque: pour la configuration de votre ordinateur, vous recevrez ensuite les e-mails, nous allons configurer les ordinateurs individuels.

Étape 1. Ouvrez maintenant MS Outlook. Sous l'onglet Accueil, accédez à Règles et développez le menu>. Sélectionnez Gérer les règles et les alertes. entrez la description de l'image ici

Étape 2. Dans la fenêtre Règles et alertes, sélectionnez Nouvelle règle dans l'onglet E-mail> Règles. entrez la description de l'image ici

Étape 3. Commencez par sélectionner votre modèle comme règle Appliquer sur les messages que je reçois. Cliquez sur Next. entrez la description de l'image ici

Étape 4. Encore une fois, nous devons spécifier la règle que vous souhaitez utiliser du côté Réception, qui sera l'ordinateur sur lequel l'e-mail transféré apparaît. Ce sera la règle pour redémarrer l'ordinateur que vous avez spécifié.

A. Avec des mots spécifiques dans le sujet - Une autre contrainte pour que le courriel de réception soit mieux identifié.

B. Avec des mots spécifiques dans le corps - Parfois, seul le sujet peut être ambigu. Donc, un corps le rend plus raffiné.

Sélectionnez-les et cliquez sur Suivant.

entrez la description de l'image ici

Spécifiez maintenant ce que vous voulez que l'e-mail recherche pour déclencher le redémarrage.

Exemple si vous choisissez un sujet.

Dites que le mot que vous choisissez est Computer1-RenderIssue

Vous le taperez dans le "Spécifiez les mots ou les phrases à rechercher dans le sous-sujet"

Maintenant que vous avez la configuration, il est temps de faire la dernière étape.

Étape 5. Vient ensuite l'action à appliquer lorsqu'un e-mail est reçu et> toutes les conditions correspondent. Sélectionnez démarrer l'application et supprimez-la. entrez la description de l'image ici

** Remarque: ** Si vous ne le supprimez pas. Si l'ordinateur est redémarré, si Outlook s'ouvre, il se mettra en boucle.

Étape 5a Pour démarrer l'action de l'application, cliquez sur le lien et sélectionnez le fichier que vous avez créé Restart.bat Cliquez sur Suivant.

Étape 5b Cliquez ensuite sur * "Y a-t-il des exceptions?"

Étape 6 Donnez un nom à la règle pour les futures références, activez-la et cliquez sur> Terminer.

Désormais, chaque fois que l'un de vos ordinateurs a un problème lors du rendu de l'e-mail vous sera envoyé avec l'ordinateur spécifié. Cela transmettra l'e-mail à cet ordinateur et redémarrera la machine.

J'espère que cela t'aides. J'ai essayé de le formater du mieux que je pouvais pendant mon travail.

Référence pour certains travaux ici

NetworkKingPin
la source
Très bien David, j'ai compris ce que vous vouliez dire.
NetworkKingPin
2
C'est beaucoup mieux;)
DavidPostill
6

Pour être honnête, si tout ce que vous voulez faire est de faire rebondir (durement) une boîte, la manière la plus simple est de «presser le bouton de réinitialisation».

Comme vous devez effectuer une réinitialisation HARD, vous pouvez soit jouer sur l'extrémité haute tension (plutôt risqué), soit le faire sur la carte mère.

Certaines cartes mères haut de gamme ont une carte réseau / contrôleur intégrée pour faire rebondir le PC. Cependant, vous pouvez également câbler le commutateur de réinitialisation à une carte de relais et contrôler celui-ci à l'aide d'une machine distincte.

Je conseillerais de connecter un Raspberry Pi via le GPIO à une carte relais. Fixez ensuite chaque relais au commutateur de réinitialisation sur les cartes mères.

Raspberry Pi 2

Casquette Raspberry Pi Relay

Aron
la source
3

Avez-vous envisagé d'exécuter votre serveur en tant que client sur une machine virtuelle? Vous devez exécuter le logiciel virtuel VM (VMware, VirtualBox) sur le serveur physique, puis exécuter une machine virtuelle avec votre logiciel de rendu en tant que client. En l'absence d'autre traitement sur la machine, vous devriez obtenir des performances comparables et il serait plus facile d'arrêter et de redémarrer une machine virtuelle qu'une machine physique.

TMN
la source
3
Je sais où vous allez avec le concept de machine virtuelle, mais votre déclaration sur des performances comparables n'a pas beaucoup de sens.
jeu de mots
Comment? Vous enveloppez simplement un serveur physique avec une machine virtuelle et l'exécutez sur le même matériel. Ce n'est pas comme si vous essayiez d'exécuter plusieurs machines virtuelles. Selon cet article de 2009 "si vous utilisez les technologies VMware ou Xen de cette année, Intel Nehalems et Shanghai Opterons et les nouveaux adaptateurs d'E / S - la virtualisation a la plupart des problèmes de performances à peu près battus." Je n'imagine pas que la virtualisation a beaucoup reculé depuis lors.
TMN
1
J'ai oublié de mentionner: il s'agit d'une ferme de rendu, donc la plupart du travail est effectué par les cartes graphiques, et leurs performances ne seront pas dégradées en exécutant l'hôte dans une machine virtuelle.
TMN
1
L'accès des VM aux GPU peut être délicat (très spécifique aux VM, très spécifique aux cartes, si supporté), alors vérifiez que cela fonctionne pour vous.
toddkaufmann
1

Je vous suggère de vérifier si les cartes mères de ces machines ont une minuterie de surveillance à bord. Je crois que ceux-ci sont raisonnablement communs au moins avec les chipsets Intel. Si du matériel de surveillance est présent, trouvez un logiciel Windows approprié pour configurer le minuteur et réinitialisez-le régulièrement tant que la machine n'est pas gelée. Si la machine se bloque, le logiciel ne pourra plus réinitialiser la minuterie et le chien de garde réinitialisera la machine. Cela devrait au moins résoudre les gels du système dur.

Selon le logiciel, vous pourrez peut-être ajouter des exigences supplémentaires pour la réinitialisation du minuteur, comme la connectivité réseau, le processus de rendu est toujours en cours d'exécution, le processus de rendu a progressé depuis la dernière réinitialisation du minuteur, ou similaire. Je ne connais pas les logiciels disponibles sur Windows, je n'utilise que des chiens de garde sous Linux jusqu'à présent.

MvG
la source
-1

Une solution créative est décrite ici

Les garçons ont résolu un problème similaire avec 2 PC se tenant l'un contre l'autre. Lorsque l'e-mail est arrivé, l'ordinateur a ouvert (puis fermé) la bande-annonce du CD, il a donc appuyé sur le bouton de réinitialisation de l'autre PC.

Bien sûr, vous pouvez utiliser n'importe quoi d'autre, qui peut être signalé et déplacer n'importe quelle partie ici et en arrière (comme un servo connecté à quelque chose - port parallèle de l'ancien PC, GPIO de Rapsberry ou Arduino, ou tout simplement tout ce que vous avez autour)

gilhad
la source
1
Lecture amusante, mais veuillez inclure les parties importantes dans votre message - les réponses doivent être aussi autonomes que possible.
Ben N