linux ping不通自动关机脚本,服务器断电自动关机bat脚本

按网上资料,写了个服务器断电自动关机批处理。在2008上好用,在2003服务器不能用。何解?

代码如下

@echo off

title 服务器断网自动关机

MODE con: COLS=50 LINES=10

rem color 4a

echo 准备检测网络……

ping/n 4 -l 1 192.168.3.1

CLS

:go1

rem 单个IP检测时,断网后延时为(miao-1)*(ndiao-1)+(miao*ys) ys表示ping失败的耗时10秒左右

set /a miao= 50

rem MIXO的值为计算余下时间而设,注意总时间等于该值减1。余下时间=(miao-1)*(ndiao-1)

set /a ndiao = 10

rem ndiao的值为重新检测网络倒计时而设定,也影响到自关机时间,注意显示的值等于该值减1

:go2

set mac=

set /a miao=%miao%-1

if "%miao%"=="0" GOTO reboot

rem setlocal enabledelayedexpansion

rem 网络正常时

echo 检测网络进行中……

for /f "tokens=5 delims== " %%a in ('ping/n 2 -l 1 192.168.3.1^|findstr "字节=1" ') do (

set mac=%%a

)

:FOR1

echo 执行for1

@echo off & setlocal enableextensions

set /a i = %ndiao%

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

set /a miao2=%miao%*(ndiao-1)+%miao%*10

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 .

ping /n 2 -l 1 127.0.1>nul

goto Timeout

:Next

cls & echo.

if "%mac%" == ""  (goto go2) else (goto go1)

:reboot

echo %date% %time% "服务器检测到网络不通60秒后关机" >>errlog.log

cd..

shutdown -s -t 60 -c "服务器检测到网络不通60秒后关机"

rem cls

echo %date% %time% "服务器检测到网络不通15秒后关机"

echo 关机60秒倒数计时中,可按任意键取消!

pause >nul

shutdown -a

exit

分享至:

90ed4b13fe016cebd9fe3df2ae3a899b.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值