Я ищу способ перезагрузить компьютеры после получения уведомления по электронной почте.
Настройка, на которой я хочу это использовать, — это ферма рендеринга. У нас есть 5 коробок с 8 Nvidia GTX 980Ti в них. Они работают под управлением Windows 10 Professional 64-bit.
Проблема, с которой мы сталкиваемся, заключается в том, что они иногда зависают или "застревают" во время рендеринга. Я настроил это так, что как только это происходит, я получаю электронное письмо с сообщением "x machine has stalled".
Я автоматизировал все на машинах: они автоматически входят в систему, открывают необходимые программы, инициируют соединение с нашим сервером лицензий и подключают все необходимые сетевые диски.
По сути, все, что вам нужно сделать, это выключить его и снова включить, и он снова заработает.
Итак, мне интересно, могу ли я настроить программу, событие или скрипт, которые будут сообщать машинам о необходимости перезагрузки после получения мной электронного письма о том, что машина остановилась?
На компьютере будет установлена 64-разрядная версия Windows 7 Pro.
решение1
Вам понадобится устройство под названием «Удаленный выключатель питания». Одно из таких устройств, которое мы использовали на моем рабочем месте для удаленной перезагрузки кабельных модемов, называется UIS-322b (см. ниже):
Вы можете настроить его с IP-адресом, а затем войти в него, чтобы включить, выключить или выключить питание любого подключенного устройства, и настроить его по расписанию. Вы не можете управлять им по электронной почте, но через веб-интерфейс. Вы все равно можете что-то настроить через wget
или curl
для автоматической отправки веб-запроса на него. У него могут быть другие функции и возможности управления, о которых я не знаю.
Если вы используете системы рендеринга, которые потребляют много энергии, я не уверен, что указанное выше устройство может справиться с ними, но могут быть и другие, которые могут. Еще одна вещь, на которую стоит обратить внимание, это «Controllable Power Strip».
решение2
Могу ли я настроить программу, событие или скрипт, которые дадут команду машинам перезагрузиться?
Это зависит от того, что вы подразумеваете под:
они замирают или «тормозят»
Если удаленный компьютер завис и требуется «жесткая перезагрузка», то удаленная перезагрузка не сработает.
Тем не менее, вы можете использовать shutdown
его для удаленной перезагрузки устройства.
Пример:
shutdown /r /f /m \\computer
/r
- Выключите и перезагрузите компьютер./f
- Принудительное закрытие запущенных приложений без предупреждения пользователей./m \\computer
- Укажите целевой компьютер.
Вы можете выполнить указанную выше команду из Outlook, когда получите соответствующее электронное письмо.
Следующая ссылкаКак: запустить приложение по электронной почте в Outlookдолжно помочь вам начать.
shutdown
Применение
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).
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD- Отличный справочник по всем вопросам, связанным с командной строкой Windows.
- неисправность- Выключи компьютер.
решение3
Если у вас есть фактическиесерверы, у них, скорее всего, есть функция удаленного управления, к которой можно подключиться, даже если основная ОС машины полностью зависла. Обычно для подключения к контроллеру используется SSH. Конкретная команда зависит от марки вашего сервера.
Для серверов Dell, использующих DRAC (Dell Remote Access Controller), команда, которую необходимо выполнить после подключения к DRAC по SSH, выглядит следующим образом:
racadm serveraction hardreset
Это выполняет жесткий сброс, эквивалентный выдергиванию шнура питания и последующему перезапуску машины. Если машина не полностью зависла, powercycle
вместо hardreset
может сработать. (Источник.)
Серверы HP используют iLO, который также доступен по SSH. Команда жесткого сброса проста:
reset hard
(Источник(официальный PDF-справочник по скриптам iLO.)
Вы можете подключить получение электронной почты к выполнению этих команд с помощью ответа DavidPostill. Существуют клиенты SSH для Windows; я думаю, что у PuTTY есть интерфейс командной строки.
решение4
Честно говоря, если все, что вы хотите сделать, это (жестко) подбросить коробку, самый простой способ — «нажать кнопку сброса».
Поскольку вам необходимо выполнить ЖЕСТКИЙ сброс, вы можете либо повозиться с высоковольтным разъемом (довольно рискованно), либо сделать это на материнской плате.
Некоторые высокопроизводительные материнские платы имеют встроенную сетевую карту/контроллер для подтормаживания ПК. Однако вы также можете подключить переключатель сброса к релейной плате и управлять ею с помощью отдельной машины.
Я бы посоветовал подключить Raspberry Pi через GPIO к релейной плате. Затем прикрепить каждое реле к кнопке сброса на материнских платах.