被电力局搞怕了,随时都可以停电,并且没有通知!今年已经好几次了!
怀疑我的硬盘就是这样坏的.
随后败了一台UPS,APC的BX550CI-CN,就这个样子

没有USB接口,服务器不能知晓是否UPS在供电(就算有,ESXi也用不上,尴尬)

写了一个小脚本,让ESXi来ping网关(路由器,插市电),如果网关3分钟都是失联状态,就判断停电了,自动执行关机命令

#!/bin/sh
while
ping -c 1 10.1.1.1 > /dev/null
[ $? -eq 0 ];
do
#echo ' AC Power OK ! ' >> /vmfs/volumes/磁盘名/ups/ups.log;date >> /vmfs/volumes/磁盘名/ups/ups.log
sleep 180
done
echo ' AC Power maybe off, checking again after 3 minutes ! ' >> /vmfs/volumes/磁盘名/ups/ups.log;date >> /vmfs/volumes/磁盘名/ups/ups.log
sleep 60
ping -c 1 10.1.1.1 > /dev/null
if [ $? -eq 0 ]
then
echo ' Checkagain, AC Power OK ! ' >> /vmfs/volumes/磁盘名/ups/ups.log;date >> /vmfs/volumes/磁盘名/ups/ups.log
else
echo ' AC Power is already off, shut down NAS Now! ' >> /vmfs/volumes/磁盘名/ups/ups.log;date >> /vmfs/volumes/磁盘名/ups/ups.log
/bin/shutdown.sh
halt
fi

以上代码保存成apc.sh放到/vmfs/volumes/磁盘名/ups/目录下,目录下同时创建ups.log空白日志文件

然后再写一个守护

#! /bin/sh
#    用ps获取ups进程数量
NUM=`ps -c | grep apc.sh | grep -v grep |wc -l`
echo ${NUM}
#    少于1,重启进程
if [ "${NUM}" -lt "1" ];then
/vmfs/volumes/磁盘名/ups/apc.sh &
echo ' UPS shouhu start' >> /vmfs/volumes/磁盘名/ups/ups.log;date >> /vmfs/volumes/磁盘名/ups/ups.log
fi
exit 0

守护脚本保存成ups_shouhu.sh也放到/vmfs/volumes/磁盘名/ups/目录下

然后添加一个计划任务,每三分钟执行守护脚本
由于ESXi重启会重置计划任务的内容,所以添加到启动

/etc/rc.local.d/local.sh文件里添加

/bin/kill $(cat /var/run/crond.pid)
/bin/echo '*/3    *    *   *   *   /vmfs/volumes/磁盘名/ups/ups_shouhu.sh' >> /var/spool/cron/crontabs/root
/bin/crond
exit 0

然后就有了一台会自动关机的GEN8了,麻麻再也不用担心异常停电了~

---------------华丽的分割线---------------
下面记录一下自动开机,如果路由器发现服务器不在线,就执行wol唤醒服务器

路由器创建一个计划任务,每三分钟执行

#Power for Gen8
ping -c 10 -w 10.1.1.2 > /dev/null
ret=$?
if [ $ret -ne 0 ]
then
ether-wake XX:XX:XX:XX:XX:XX
fi

自动关机,自动开机,都搞定icon_smile.gif

参考了不少大神的代码,我都忘记来源了,没办法一一列上,见谅

最后修改:2017 年 01 月 05 日 15 时 24 分