LINUX、ESXI如何使用普通的UPS做到断电自动关机,保护硬盘不受到损伤

一、登陆ESXI的SSH创建文件夹及脚本

1.进入磁盘目录

cd vmfs/volumes
ls

我的硬盘名称为datastore1

VLOG | ESXI如何使用普通的UPS做到断电自动关机,保护硬盘不受到损伤 – Vedio Talk - VLOG、科技、生活、乐分享

2.进入硬盘目录

cd datastore1
ls

此时显示的是我们目前所有的虚拟机目录

正在上传…重新上传取消

3.创建一个ups目录,并进入ups目录

mkdir ups
cd ups

4.创建apc.sh脚本

vi apc.sh

里面填入脚本代码

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

代码中的12.12.12.252 改为你要Ping的网关地址,datastore1 部分的改为你的硬盘名称,默认的都是这个

按esc键退出编辑模式
:wq

然后赋予权限

chmod 777 apc.sh

VLOG | ESXI如何使用普通的UPS做到断电自动关机,保护硬盘不受到损伤 – Vedio Talk - VLOG、科技、生活、乐分享

赋予权限后apc.sh会变为绿色

二、创建空白的日志文件ups.log

同样的在第一步所创建的ups目录里面创建

vi ups.log
:wq

同样赋予权限

chmod 777 ups.log

三、可以临时测试下脚本是否生效

进入到ups目录

cd vmfs/volumes/datastore1/ups
./apc.sh

不显示任何内容就代表在运行了

VLOG | ESXI如何使用普通的UPS做到断电自动关机,保护硬盘不受到损伤 – Vedio Talk - VLOG、科技、生活、乐分享

然后这个ssh界面保持不动 从新打开一个,检测下是否运行成功,输入命令

ps -c | grep apc.sh | grep -v grep |wc -l

VLOG | ESXI如何使用普通的UPS做到断电自动关机,保护硬盘不受到损伤 – Vedio Talk - VLOG、科技、生活、乐分享

反馈的是1 代表脚本启动成功,反馈的是0 代表没有启动成功

四、添加守护进程代码

同样进入到ups目录

cd vmfs/volumes/datastore1/ups
vi ups_shouhu.sh
i

里面填入如下代码

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

VLOG | ESXI如何使用普通的UPS做到断电自动关机,保护硬盘不受到损伤 – Vedio Talk - VLOG、科技、生活、乐分享

按esc退出编辑模式
:wq

同样赋予权限

chmod 777 ups_shouhu.sh

五、然后添加一个计划任务,每三分钟执行守护脚本

vi /etc/rc.local.d/local.sh

默认打开是这样的,把里面的内容全部清空

VLOG | ESXI如何使用普通的UPS做到断电自动关机,保护硬盘不受到损伤 – Vedio Talk - VLOG、科技、生活、乐分享

然后填入如下代码

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

VLOG | ESXI如何使用普通的UPS做到断电自动关机,保护硬盘不受到损伤 – Vedio Talk - VLOG、科技、生活、乐分享

六、然后从起ESXI主机,再执行命令验证下脚本是否运行

ps -c | grep apc.sh | grep -v grep |wc -l

反馈的是1 代表脚本启动成功,反馈的是0 代表没有启动成功


七、自动开机脚本

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

路由器创建一个计划任务,每三分钟执行,里面的12.12.12.254 IP修改为你的ESXI的后台地址

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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐