web-dev-qa-db-fra.com

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

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

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

Le problème que nous rencontrons est qu’ils gèlent ou "bloquent" parfois lors du rendu. Je l'ai mis en place, donc, une fois que cela se produit, je reçois un e-mail m'informant que "x machine est bloquée".

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.

En gros, 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 demandera aux machines de redémarrer après avoir reçu le courrier électronique indiquant qu'une machine est bloquée?

La machine qui exécutera ceci exécute Windows 7 Pro 64-bit.

29
RyanIG

Vous souhaitez un périphérique appelé "commutateur d'alimentation à distance"; celui que nous avons utilisé sur mon lieu de travail pour redémarrer à distance les modems câbles est le UIS-322b ci-dessous:

enter image description here

Vous pouvez le configurer avec une adresse IP, puis vous y connecter pour le mettre sous tension ou éteindre ou rallumer l'un ou l'autre des périphériques connectés, puis le définir selon un planning. Vous ne pouvez pas le contrôler par courrier électronique, mais via l'interface Web. Vous pouvez toujours configurer quelque chose avec wget ou curl pour lui envoyer automatiquement une demande Web. Je ne connais pas encore d'autres fonctionnalités et possibilités de contrôle.

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 est possible que d'autres le soient. Une autre chose à rechercher est "bande de contrôle contrôlable".

44
LawrenceC

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

Cela dépend de ce que vous entendez par:

ils gèlent ou "stall"

Si la machine distante a été suspendue de manière à nécessiter une "réinitialisation matérielle", un redémarrage à distance ne fonctionnera pas.

Cela dit, vous pouvez utiliser shutdown pour redémarrer à distance un périphérique.

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 prévenir les utilisateurs.

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

Vous pouvez exécuter la commande ci-dessus à partir d'Outlook lorsque vous recevez le courrier électronique approprié.

Le lien suivant Comment: déclencher une application par courrier électronique 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

33
DavidPostill

Si vous avez des serveurs réels , ils disposent probablement d'une fonction de gestion à distance pouvant être connectée 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 la connexion SSH dans le DRAC est la suivante:

racadm serveraction hardreset

Cela effectue une réinitialisation matérielle, ce qui équivaut à débrancher le cordon d’alimentation puis à redémarrer la machine. Si la machine n'est pas complètement bloquée, powercycle au lieu de hardreset pourrait suffire. ( Source. )

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

reset hard

( Source , référence officielle PDF à la génération de scripts iLO.)

Vous pouvez relier 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.

16
Ben N

Utilisez Outlook.

Le lien au bas de la réponse contient des informations utiles pour cette réponse. Félicitations à GuidingTech.com

Créez d'abord un fichier .bat.

shutdown.exe /r /t 00

Enregistrer sous Redémarrez.bat

Assurez-vous que l'ordinateur est connecté avec le courrier électronique dans lequel vous recevez le message Notification.

Si vous le souhaitez, vous pouvez configurer différents comptes pour chaque ordinateur et configurer votre messagerie pour transférer les courriers électroniques que vous recevez sous forme de notifications.

Exemple.

[email protected] est le PC hôte doté d'une carte graphique qui ne rend pas le rendu.

Testemail.com est votre email sur lequel vous recevez des notifications.

À la réception de l'e-mail, Outlook transfère automatiquement l'e-mail vers l'e-mail correspondant. qui dans ce cas est [email protected]

[email protected] reçu à [email protected], puis envoyez cet email à tous les ordinateurs.

L'astuce consiste ici à 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: Il s’agit de configurer votre ordinateur pour que vous receviez les e-mails, nous allons ensuite 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. enter image description here

Étape 2. Dans la fenêtre Règles et alertes, cliquez sur Nouvelle règle lorsque vous vous trouvez dans l'onglet E-mail> Règles. enter image description here

Étape 3. Commencez par sélectionner votre modèle comme règle Appliquer les messages que je reçois. Cliquez sur Suivant. enter image description here

Étape 4. Une fois encore, nous devons spécifier la règle que vous souhaitez utiliser du côté de la réception, à savoir l'ordinateur sur lequel le courrier 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 - Autre contrainte pour que le> courrier électronique récepteur 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 appuyez sur suivant.

enter image description here

Maintenant Spécifiez 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 allez taper cela dans "Spécifiez les mots ou expressions à rechercher dans le sous-objet"

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

Étape 5. Vient ensuite l'action à appliquer lorsqu'un courrier électronique est reçu et> toutes les conditions correspondent. Sélectionnez démarrer l'application et supprimez-la. enter image description here

** 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 lancer une action, cliquez sur le lien et sélectionnez le fichier que vous avez créé Redémarrez.bat Cliquez sur Suivant.

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

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

Maintenant, chaque fois qu'un de vos ordinateurs rencontre un problème lorsque le rendu de l'e-mail vous sera envoyé avec l'ordinateur spécifié. Cela transmettra le courrier électronique à cet ordinateur et redémarrera la machine.

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

Référence pour certains travaux ici

13
NetworkKingPin

Pour être honnête, si tout ce que vous voulez faire est de rebondir (dur) une boîte, le moyen le plus simple consiste à "appuyer sur le commutateur de réinitialisation".

Etant donné que vous devez effectuer une réinitialisation HARD, vous pouvez soit déranger le côté 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é pour faire rebondir le PC. Cependant, vous pouvez également connecter le bouton de réinitialisation à une carte de relais et la contrôler à l'aide d'une machine séparée.

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

Raspberry Pi 2

Raspberry Pi Relay HAT

6
Aron

Avez-vous envisagé d'exécuter votre serveur en tant que client sur une machine virtuelle? Vous exécuteriez le logiciel VM (VMware, VirtualBox) sur le serveur physique, puis exécutiez une machine virtuelle avec votre logiciel de rendu en tant que client. En l'absence de tout 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.

3
TMN

Je vous suggérerais de vérifier si les cartes mères de ces machines ont un minuteur 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, recherchez le logiciel Windows approprié pour configurer la minuterie et réinitialisez-le régulièrement tant que la machine n'est pas gelée. Si la machine se fige, le logiciel ne pourra plus réinitialiser le chronomètre et le chien de garde réinitialisera la machine. Cela devrait au moins résoudre le gel du système.

Selon le logiciel, vous pouvez éventuellement ajouter des exigences supplémentaires pour la réinitialisation du minuteur, telles que la connectivité réseau, le processus de rendu en cours d'exécution, le processus de rendu a progressé depuis la dernière réinitialisation du programmateur ou similaire. Je ne connais pas les logiciels disponibles sur Windows, je n'ai jusqu'à présent utilisé des chiens de garde sous Linux .

1
MvG