怎么让UPS电源安全关闭服务器,并服务器自动关机不弹出

停电后,在UPS电源下服务器自动关机脚本 - 开源中国社区
当前访客身份:游客 [
当前位置:
发布于 日 10时,
一年总有那么几次莫明停电,公司的服务器经不起这样的折腾
写了一个断电后UPS备用电源自动关机的脚本
原理就是检测路由器网关是否能ping通,长时间持续ping不通视为停电了
路由器不要接到ups上
& &检测网关是否持续ping不通300次(forever模式,添加到启动任务即可)&
& & sudo ./ups_check forever 192.168.1.1 300
& &检测网关是否持续ping不通30次(once模式,需要配合crond使用)
& &sudo ./ups_check once 192.168.1.1 30
代码片段(1)
ups_check.sh&~&3KB&&&&
# halt command
ping_forever_host(){
time_out=$2
kernel=`uname -s`
total_miss=0
echo "ups check host '${IP}' for (${time_out}) seconds, [forever mode]"
# ping host, if miss recieved packets, then add to total_miss
while true
case $kernel in
ret=`ping -c ${count} -W 1 ${IP} 2&&1|grep 'packets transmitted'|sed 's/.*, \(.*\) packets received,.*/\1/'`
#MacOS X 10.7.4
ret=`ping -c ${count} -W 1 ${IP} 2&&1|grep 'packets transmitted'|sed 's/.*, \(.*\) packets received,.*/\1/'`
#ubuntu 12.04
ret=`ping -c ${count} -W 1 ${IP} 2&&1|grep 'packets transmitted'|sed 's/.*, \(.*\) received,.*/\1/'`
echo "Unknown Architecture $kernel"
miss=$((count-ret))
if [ $miss -eq $count ]; then
total_miss=$((total_miss+miss))
echo "total_miss: ${total_miss} --& ${time_out}"
total_miss=0
# if miss count over limit, then halt the computer!!!
if [ $total_miss -ge $time_out ]; then
echo "SYSTEM WILL HALT AT '`date`'!!!"
ping_once_host(){
time_out=$2
kernel=`uname -s`
total_miss=0
echo "ups check host '${IP}' for (${time_out}) seconds, [once mode]"
# ping host, if miss recieved packets, then add to total_miss
case $kernel in
ret=`ping -c ${count} -W 1 ${IP} 2&&1|grep 'packets transmitted'|sed 's/.*, \(.*\) packets received,.*/\1/'`
#MacOS X 10.7.4
ret=`ping -c ${count} -W 1 ${IP} 2&&1|grep 'packets transmitted'|sed 's/.*, \(.*\) packets received,.*/\1/'`
#ubuntu 12.04
ret=`ping -c ${count} -W 1 ${IP} 2&&1|grep 'packets transmitted'|sed 's/.*, \(.*\) received,.*/\1/'`
echo "Unknown Architecture $kernel"
miss=$((count-ret))
if [ $miss -eq $count ]; then
total_miss=$((total_miss+miss))
echo "total_miss: ${total_miss} --& ${time_out}"
total_miss=0
# if miss count over limit, then halt the computer!!!
if [ $total_miss -ge $time_out ]; then
echo "SYSTEM WILL HALT AT '`date`'!!!"
action=$1;
case $action in
#run forever
ping_forever_host $2 $3
# run once
ping_once_host $2 $3
echo "usage: sudo ./ups_check forever 192.168.2.1 120"
echo "usage: sudo ./ups_check once 192.168.2.1 60"
main $1 $2 $3
开源中国-程序员在线工具:
个人建议!用monit 一句代码就行了,没这么复杂! 不过练手到是另说!
2楼:Romotc 发表于
line 107: syntax error: count-ret
开源从代码分享开始
Rockee的其它代码山特UPS如何实现服务器自动关机_百度知道
山特UPS如何实现服务器自动关机
CSTK UPS不间断电源 C2K 2KVA/1400W 在线式标准机(美国山特监制) 这台UPS能否支持市电断开后,实现服务器自动关机。如可以,则如何实现?
我有更好的答案
这个就要看楼主当时配的后端负载时间是多少。比如配了2个小时 那断电后ups就只能提供2小时电量,而服务器就必须要在2个小时内自动关机,不然就是强行关闭。ups的设计也是不间断供电,电池供电和市电供电的切换做到无间隔(在线式)。所以如果电池时间够,那是可以的。ps:美国山特是小厂生产的,售后堪忧。正规山特应该是深圳山特。呵呵 我是做这行的。
采纳率:47%
市电中断负载自动关机,那您还买UPS干什么?
在无人守值的情况下,UPS能保证我服务器正常关机,如果不正常关机,UPS无电,那服务器不是强关了
什么意思啊,听不大明白
楼主,您好!您这个机器不是正宗的山特,是美国假山特,应该厂家做这个机器的时候没有这个功能,您看看机器能不能加块网卡来实现这个功能(APC的机器加块网卡是可以实现的,您可以找到懂这块的人问一下)。
望上诉回答对楼主有所帮助,谢谢!
你这个美国山特 不是正宗的深圳山特 没有接触过
正宗美国山特,可推荐一个1400W的不?
不好意思 深圳山特 C2KS 配65AH电池吧
其他1条回答
为您推荐:
其他类似问题
您可能关注的内容
山特ups的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。&一年总有那么几次莫明停电,公司的服务器经不起这样的折腾&写了一个断电后UPS备用电源自动关机的脚本&原理就是检测路由器网关是否能ping通,长时间持续ping不通视为停电了&路由器不要接到ups上&用法&& & 1.检测网关是否持续ping不通300次(forever模式,添加到启动任务即可)&&& & & sudo ./ups_check forever 192.168.1.1 300&& &2.检测网关是否持续ping不通30次(once模式,需要配合crond使用)&& & & sudo ./ups_check once 192.168.1.1 30&
ping_forever_host(){
&&&&time_out=$2
&&&&count=3
&&&&kernel=`uname -s`
&&&&total_miss=0
&&&&echo "ups check host '${IP}' for (${time_out}) seconds, [forever mode]"
&&&&while true
&&&&&&&&case $kernel in
&&&&&&&&&&&&VMkernel)&&&&&&&&&&&
&&&&&&&&&&&&&&&&ret=`ping -c ${count} -W 1 ${IP} 2&&1|grep 'packets transmitted'|sed 's/.*, \(.*\) packets received,.*/\1/'`
&&&&&&&&&&&&&&&&;;
&&&&&&&&&&&&Darwin)&&&&&&&&&&&
&&&&&&&&&&&&&&&&ret=`ping -c ${count} -W 1 ${IP} 2&&1|grep 'packets transmitted'|sed 's/.*, \(.*\) packets received,.*/\1/'`
&&&&&&&&&&&&&&&&;;
&&&&&&&&&&&&Linux)&&&&&&&&&&&
&&&&&&&&&&&&&&&&ret=`ping -c ${count} -W 1 ${IP} 2&&1|grep 'packets transmitted'|sed 's/.*, \(.*\) received,.*/\1/'`
&&&&&&&&&&&&&&&&;;
&&&&&&&&&&&&*)
&&&&&&&&&&&&&&&&echo "Unknown Architecture $kernel"
&&&&&&&&&&&&&&&&exit 1
&&&&&&&&&&&&&&&&;;
&&&&&&&&esac
&&&&&&&&miss=$((count-ret))
&&&&&&&&if [ $miss -eq $count ]; then
&&&&&&&&&&&&total_miss=$((total_miss+miss))
&&&&&&&&&&&&echo "total_miss: ${total_miss} --& ${time_out}"
&&&&&&&&else
&&&&&&&&&&&&total_miss=0
&&&&&&&&fi
&&&&&&&&if [ $total_miss -ge $time_out ]; then
&&&&&&&&&&&&echo "SYSTEM WILL HALT AT '`date`'!!!"
&&&&&&&&&&&&${HALT}
&&&&&&&&&&&&break;
&&&&&&&&fi
ping_once_host(){
&&&&count=$2
&&&&time_out=$2
&&&&kernel=`uname -s`
&&&&total_miss=0
&&&&echo "ups check host '${IP}' for (${time_out}) seconds, [once mode]"
&&&&case $kernel in
&&&&&&&&VMkernel)&&&&&&&&&&&
&&&&&&&&&&&&ret=`ping -c ${count} -W 1 ${IP} 2&&1|grep 'packets transmitted'|sed 's/.*, \(.*\) packets received,.*/\1/'`
&&&&&&&&&&&&;;
&&&&&&&&Darwin)&&&&&&&&&&&
&&&&&&&&&&&&ret=`ping -c ${count} -W 1 ${IP} 2&&1|grep 'packets transmitted'|sed 's/.*, \(.*\) packets received,.*/\1/'`
&&&&&&&&&&&&;;
&&&&&&&&Linux)&&&&&&&&&&&
&&&&&&&&&&&&ret=`ping -c ${count} -W 1 ${IP} 2&&1|grep 'packets transmitted'|sed 's/.*, \(.*\) received,.*/\1/'`
&&&&&&&&&&&&;;
&&&&&&&&*)
&&&&&&&&&&&&echo "Unknown Architecture $kernel"
&&&&&&&&&&&&exit 1
&&&&&&&&&&&&;;
&&&&miss=$((count-ret))
&&&&if [ $miss -eq $count ]; then
&&&&&&&&total_miss=$((total_miss+miss))
&&&&&&&&echo "total_miss: ${total_miss} --& ${time_out}"
&&&&&&&&total_miss=0
&&&&if [ $total_miss -ge $time_out ]; then
&&&&&&&&echo "SYSTEM WILL HALT AT '`date`'!!!"
&&&&&&&&${HALT}
&&&&action=$1;
&&&&case $action in
&&&&&&&&forever)&&&&&&&&&&&
&&&&&&&&&&&&ping_forever_host $2 $3
&&&&&&&&&&&&;;
&&&&&&&&once)&&&&&&&&&&&&&&
&&&&&&&&&&&&ping_once_host $2 $3
&&&&&&&&&&&&;;
&&&&&&&&*)
&&&&&&&&&&&&echo "usage: sudo ./ups_check forever 192.168.2.1 120"
&&&&&&&&&&&&echo "usage: sudo ./ups_check once 192.168.2.1 60"
&&&&&&&&&&&&exit 1
&&&&&&&&&&&&;;
main $1 $2 $3
阅读(...) 评论()ups电源出现自动关机是怎么回事_百度知道
ups电源出现自动关机是怎么回事
我有更好的答案
电池放电结束,为了保护电池而自动关机;接在UPS上的负载太多,造成过载,为了保护自身,UPS会自动停机;通风不好,UPS内部的温度太高,UPS也会自动该机;发生了故障,也会自动关机。
采纳率:63%
应该是电池寿命到了,需要更换
主机坏了。。。
为您推荐:
其他类似问题
您可能关注的内容
ups电源的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 121, 距离下一级还需 79 积分
论坛徽章:0
本帖最后由 奥特蟹蟹 于
16:53 编辑
下面这个 shell 脚本是论坛一位大虾给的(在此谢谢q1208c),我是小白,麻烦各位解读一下:
sub get_ups_stat()
& & return [{市电|UPS},PowerLevel(0-100)]
sub shut_down()
& & shutdown -r now
while (1) {
& & ups_stat=get_ups_stat
& & if (ups_stat[0] == UPS and ups_stat[1] & 30) {
& && &&&shut_down
& & } else {
& && &&&sleep 30
随ups赠送的光盘里边包含不间断电源系统监控软件,但是我安装之后出现运行错误,不知道问题出在哪儿,还请各位帮忙看一下,我把光盘里边的相关应用程序上传了(为什么只能在回复里边添加啊!),见17楼,谢谢各位!
白手起家, 积分 121, 距离下一级还需 79 积分
论坛徽章:0
我在运行该shell脚本的过程中,遇到这样一个错误,不知道是程序的问题还是编译环境的问题,求解答?小弟在此先谢谢了!
(14.07 KB, 下载次数: 7)
17:15 上传
富甲一方, 积分 48553, 距离下一级还需 1447 积分
论坛徽章:32
这看起来怎么像perl脚本多一些呢?
稍有积蓄, 积分 304, 距离下一级还需 196 积分
论坛徽章:0
传说中的函数化编程~
富足长乐, 积分 7443, 距离下一级还需 557 积分
论坛徽章:5
富甲一方, 积分 49895, 距离下一级还需 105 积分
论坛徽章:33
我声明, 这不是我教他的.
白手起家, 积分 121, 距离下一级还需 79 积分
论坛徽章:0
我是真的不懂啊,能告诉我肿么做么?
白手起家, 积分 121, 距离下一级还需 79 积分
论坛徽章:0
大大,没有给你丢脸吧?能告诉我咋个做么?最近公司买的服务器要开始用了,老大给我下了命令,一定要想办法让ups和服务器之间可以通信,真是完全不考虑我一个小白的处境啊!
白手起家, 积分 121, 距离下一级还需 79 积分
论坛徽章:0
谢谢大虾!
论坛徽章:105
是谁告诉你这个脚本可以判断市电和UPS的?
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处

我要回帖

更多关于 服务器自动关机原因 的文章

 

随机推荐