会飞的鱼

网吧技术,我们的认真的!
QQ群:594362448
首页 » 未分类 » 使用UPS的服务器断电以后,自动关机程序和批处理。

使用UPS的服务器断电以后,自动关机程序和批处理。

服务器老是停电或断电 高速运转的硬盘极容易损坏,接了UPS,如果没有懂得的人去关机也是摆设,所以需要用软件在UPS提供的珍贵电量的几分钟内实现自动关机。

批处理版本:(不支持2008)

 

@echo off

title 服务器断网自动关机   
MODE con: COLS=50 LINES=10
color 4a
echo 准备检测网络……
ping 127.0.0.1 -n 4
CLS

:go1

set /a miao=85
rem MIXO的值为计算余下时间而设,注意总时间等于该值减1。余下时间=(miao-1)*(ndiao-1)
set /a ndiao = 6
rem ndiao的值为重新检测网络倒计时而设定,也影响到自关机时间,注意显示的值等于该值减1

:go2
set mac=
set /a miao=%miao%-1
if "%miao%"=="0" GOTO reboot
for /f "tokens=14*" %%i in ('ipconfig/all^|find "Enabled"') do (
set mac=%%i
goto FOR1)

:FOR1
@echo off & setlocal enableextensions
echo WScript.Sleep 1000 > %temp%\tmp$.vbs

set /a i = %ndiao%
rem i的值为计算余下时间而设,余下时间=(miao-1)*(ndiao-1)

set /a miao2=%miao%*(ndiao-1)
rem miao2为自动关机的余下时间=(miao-1)*(ndiao-1)

:Timeout
if %i% == 1 goto Next
setlocal
set /a i = %i% - 1
cls
echo .        服务器无人守值,断网自动关机
echo .       
if "%mac%" == "" (echo .        网络连接不正常,系统将在%miao2%秒后自动关机)  ELSE (
echo .        网络连接正常)
echo .
echo .         %i% 秒后重新检测网络
echo .       
ECHO .       
ECHO .      
cscript //nologo %temp%\tmp$.vbs
goto Timeout

:Next
cls & echo.
for %%f in (%temp%\tmp$.vbs) do del %%f
if "%mac%" == ""  (goto go2) else (goto go1)

:reboot
echo %date% %time% "服务器检测到网络不通60秒后关机" >>errlog.log
shutdown -s -f -t 60 -c "服务器检测到网络不通60秒后关机"
cls
echo %date% %time% "服务器检测到网络不通15秒后关机"
echo 关机60秒倒数计时中,可按任意键取消!
pause >nul
shutdown -a
exit

文章如无特别注明均为原创! 作者: admin, 转载或复制请以 超链接形式 并注明出处 Winos.vip
原文地址《 使用UPS的服务器断电以后,自动关机程序和批处理。》发布于2017-6-24

分享到:
打赏

评论

游客


切换注册

登录

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册

sitemap