Перейти к содержанию

CMD. Батник для удалённой перезагрузки фермы.


1001rapid

Рекомендуемые сообщения

Делюсь наработками.
Возникла тут у меня ситуация, когда я увидел на пуле, что одна из карт (основная, та, куда, кук бы монитор подключен) не выдаёт полную мощь.
По мониторингу видно, что с частотами всё нормально.
Думаю, нужно перезагрузить. Пытаюсь подключиться через ТимВьювер - не даёт, через RDP - нет. Сетевая расшаренная папка при этом доступна.
В итоге пошёл (!!!) и нажал Reset, а так как делать этого не хотелось, придумал как сделать так, что бы вообще никуда логиниться не нужно было.
Имеется ввиду - программы удалённого доступа (долго и велика вероятность зависания, да ещё и бывает, как вот у меня, не даёт подключиться).

 

Для начала, расшариваем папку, где всё "добро" лежит. 
Проверяем, доступна ли она из файлового менеджера "основной" машины (откуда мониторятся фермы).
Для винды проще создать прямые ярлыки в папку, чем ждать отклика от "Сетевого окружения", потому что оно не всегда выдаёт реальную картинку.
Я так вообще пользуюсь FAR, где в пользовательском меню создал команды на переход в сетевую папку ферм.

 

Туда кладём три файла reboot.bat, rebootNet.bat, rebootNet.txt
Внимание! В фалах rebootNet в строчке с командой "copy" в конце 4 пробела. Это нужно, что бы не выскакивало ошибки при замене файла. Она, вроде, на работу не влияет, но глаз мозолит.

 

Ярлык (!!!) на файл rebootNet.bat кидаем в Автозагрузку.

 

Для перезагрузки:

- заходим по сетке, каким угодно файловым менеджером в эту самую расшаренную папку;
- открываем для редактирования файл rebootNet.bat и удаляем "rem " перед "goto reboot";
- сохраняем.

 

Максимум через минуту (это строчка "ping -n 60...") запустится файл reboot.bat, 
который ещё через минуту (это параметр "-t 60") перезагрузит ферму.

На всякий случай - с возможностью отмены по нажатию "Enter". После отмены окно закроется через минуту.

 

А что бы после перезагрузки батник стал опять ожидающим, а не активным, он переписывается файлом rebootNet.txt, в котором записано исходное состояние батника.

 

В архиве все три файла.

И содержание, на всякий случай:

 

reboot.bat

@echo off

shutdown.exe -g -t 60 -f
set /p qw=Press [Enter] for cancel...

shutdown.exe /a

echo.
echo.Reboot is cancelled
ping -n 60 127.0.0.1 > nul
exit

rebootNet.bat

@echo off
:rstart
echo.
echo.waiting for request to reboot from the network...
:loop
ping -n 60 127.0.0.1 > nul

rem goto rboot

goto loop
:rboot
echo. rebooting...
start  reboot
ping -n 2 127.0.0.1 > nul
echo.    recovery rebootNet.bat:
copy /Y rebootNet.txt rebootNet.bat     
ping -n 2 127.0.0.1 > nul
goto rstart

rebootNet.txt (собственно это копия предыдущего файла в его исходном состоянии)

@echo off
:rstart
echo.
echo.waiting for request to reboot from the network...
:loop
ping -n 60 127.0.0.1 > nul

rem goto rboot

goto loop
:rboot
echo. rebooting...
start  reboot
ping -n 2 127.0.0.1 > nul
echo.    recovery rebootNet.bat:
copy /Y rebootNet.txt rebootNet.bat     
ping -n 2 127.0.0.1 > nul
goto rstart 

 

20180111-reboot_bat.rar

Изменено пользователем 1001rapid
Ссылка на комментарий
Поделиться на другие сайты

Гм.. кстати, а можно ещё упростить

после всех этих операций, создать батники с командой "copy" для перезаписи ожидающего батника на активный для каждой фермы

только тогда ещё один файл нужен - активного состояния батника

 

только в этих батниках нужно использовать команду XCOPY и полный путь писать для обоих файлах (источник, назначение)

типа

xcopy /y /z \\42-64BIT\iCloud\OneDrive\Mining\soft\rebootNet-act.txt \\42-64BIT\iCloud\OneDrive\Mining\soft\rebootNet.bat 

а в этом новом файле нужно добавить 4 пробела где-нибудь повыше,

скажем, между строчками

rem goto rboot
    
goto loop

а то опять CMD часть кода начинает воспринимать за команду и писать, что это не команда) 

Изменено пользователем 1001rapid
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...