作为一名机房运维人员,*烦躁的事,莫过于停电时,要关闭服务器。
因为机房的UPS的容量有限,不可能长时间供电,而且停电有可能发生在休息时间,夜里或你出去游玩的时候,你根本没办法远程登录进行关机。
就算可以登录,但服务器的数量众多,有windows的,有linux的,每一台都要输入用户名密码再关机,操作下来也是很繁琐。
在没有系统的管理软件执行自动关机的情况下,可以通过将以下脚本配置为计划任务,让其每隔一定时间去检测某个IP地址是否能ping通,再决定是否关机。
几行代码,即可减轻运维人员的压力,让你安心睡大觉,开开心心的出去玩。

windows服务器的停电自动关机检测脚本:

@echo off
for /f %%n in (‘ping 192.168.1.10 ^| find /c “TTL”‘) do set p=%%n
if %p% EQU 0 (
echo 自动关机条件已经触发,系统将在1分钟后自动关机
shutdown /s
)

Linux服务器的停电自动关机检测脚本:

#! /bin/bash
p=`ping -c 5 192.168.1.10 | grep -c “ttl”`
if [ $p = 0 ]; then
echo “自动关机条件已经触发,系统将在1分钟后自动关机”
shutdown -h +1
fi