1.创建供电检测脚本 ups.sh

vi ups.sh

填入以下内容,然后输入 :wq保存

#!/bin/sh

while

ping -c 4 192.168.2.1 > /dev/null

[ $? -eq 0 ];

do

echo '供电正常 时间:'$(date) >> /var/log/ups.log

sleep 600

done

echo '供电异常,2分钟后重新检测 时间:'$(date) >> /var/log/ups.log

sleep 120

ping -c 4 192.168.2.1 > /dev/null

if [ $? -eq 0 ]

then

echo '供电正常 时间:'$(date) >> /var/log/ups.log

else

echo '供电异常,开始关机 时间:'$(date) >> /var/log/ups.log

shutdown -h now

fi

其中,192.168.2.1修改为你内网设备IP,保证其在市电断电后离线即可

基本每10分钟会ping一次内网设备,如果离线则在2分钟后重新ping一次,如果两次均检测离线,则开始关机(可根据自己的UPS供电时间调整)

检测日志会保存在 /var/log/ups.log文件中

2.赋予可执行权限

chmod 777 ups.sh

或者

chmod a+x ups.sh

3.创建守护脚本,检测ups.sh的正常运行

vi ups_sh.sh

填入以下内容,然后输入:wq保存

NUM=`ps -ef | grep ups.sh | grep -v grep |wc -l`; echo ${NUM}

if [ ${NUM} -lt 1 ];then

/usr/local/ups/ups.sh > /dev/null 2>&1 &

echo '开启供电检测脚本 时间:'$(date) >> /var/log/ups.log

fi

exit 0

其中,/usr/local/ups/ups.sh为供电检测脚本的路径

日志保存在/var/log/ups.log

4.同样赋予可执行权限

chmod 777 ups_sh.sh

或者

chmod a+x ups_sh.sh

5.创建Cron定时任务

crontab -e

填入以下内容,然后输入:wq保存

*/5 * * * * /usr/local/ups/ups_sh.sh > /dev/null

其中 */5 * * * *为每5分钟执行一次守护脚本

更详细的Cron定时任务的内容,请参考《Linux创建cron定时任务》

/usr/local/ups/ups_sh.sh为守护脚本的路径

6.断电关机后如何发送邮件通知

断电关机前发送邮箱通知必须满足两个条件

1)网关必须在UPS保护下,断电后主机仍然可以访问互联网(此时可以让脚本ping内网的其他断电离线的设备)

2)必须在linux系统设置好mail命令相关配置文件,如何配置详见《Linux下使用mail发送邮件》

此时,在ups.sh修改为如下

#!/bin/sh

while

ping -c 4 192.168.2.1 > /dev/null

[ $? -eq 0 ];

do

echo '供电正常 时间:'$(date) >> /var/log/ups.log

sleep 600

done

echo '供电异常,2分钟后重新检测 时间:'$(date) >> /var/log/ups.log

sleep 120

ping -c 4 192.168.2.1 > /dev/null

if [ $? -eq 0 ]

then

echo '供电正常 时间:'$(date) >> /var/log/ups.log

else

echo '供电异常,开始关机 时间:'$(date) >> /var/log/ups.log

echo "供电异常正在关机" | mail -s "供电异常" kissyou@love.com

sleep 10

shutdown -h now

fi

此时,关机前10秒会向kissyou@love.com邮箱发送 标题为 供电异常,内容为供电异常正在关机 的邮件,请将kissyou@love.com修改成你自己的邮箱

>>本文为下一朵云的原创文章,转载请附上原文出处链接及本声明

>>原文链接地址:Linux如何使用普通的UPS做到断电自动关机

支持linux自动关机的ups,Linux如何使用普通的UPS做到断电自动关机相关推荐

  1. 支持linux自动关机的ups,使用 apcupsd 实现 UPS 断电自动关机

    炎炎夏日,唯一比头顶的烈日更加恼人的便是停电了.空调没了不说,正在处理的数据或者游玩的游戏被意外中断,简直令人抓狂,这个时候一款可靠且智能的 UPS 显得尤其重要. 由于所处的环境,在下的 PC 多年 ...

  2. ups linux 电脑自动关机,停电后服务器自动关机工具(有UPS电源) 在UPS消耗完电前自动关机...

    停电后服务器自动关机工具干什么用?当前网吧很多都用的无盘系统,服务器数据非常关键,而UPS只能支撑几分钟的时间,等UPS将电池内的电量消耗完,还是一样会恶意关机,导致数据不安全?当前有了这款停电后服务 ...

  3. ups linux 电脑自动关机,局域网中如何一个UPS操作多个设备断电自动关机?

    @echo off rem 断电自动关机脚本 rem 制作:MALEI rem 说明: rem 判断模块:根据路由与AP的PING值判断网络设备是否在线 rem 正常模块:如正常则把检测时间写如LOG ...

  4. arm02gnu/linux,2.1. 支持的硬件 - Debian GNU/Linux 安装手册(PPC架构)

    Debian 不会超出 Linux 内核与 GNU 工具集所支持的硬件范围之外. 因此,任何被移植了 Linux 内核,libc, gcc等,并拥有对应的 Debian 移植版的硬件体系或平台都可以运 ...

  5. gui linux 桌面应用,吃掉Linux开发者,WSL支持GUI应用

    在 WSL 中运行 Linux GUI 应用已成为现实,微软 WSL 团队产品经理 Craig Loewen 在推特展示了其团队为 WSL 添加对 Linux GUI 应用的支持,并表示越来越接近初始 ...

  6. 微软宣布.NET开发环境将开源 支持Mac OS X和Linux

    11 月 13 日消息,据国外媒体报道,微软周三公布了 .NET 开发框架开源计划.公司拟将这长期以来只能运行于 Windows 系统下的开发环境,通过 GitHub 开源(https://githu ...

  7. linux内核多大 4.17.8,Linux Kernel 4.17结束支持,请升级到Linux 4.18内核

    Linux Kernel 4.17最后一个更新是Linux Kernel 4.17.19内核,该系列内核版本将结束支持,它不会再得到新的更新,请用户把Linux内核升级到4.18版本,这样能避免安全漏 ...

  8. 深度 linux支持debian,基于Debian的Linux发行版安装深度音乐及其插件

    在Linux上想要一个完美的,并且能够在线的音乐播放器是很头疼的事情.找了很久,还是觉得Deepin的深度音乐是非常不错的选择.不仅可以播放本地,还可以安装很多插件,包括网易云,百度音乐等等. 下面我 ...

  9. linux自动关机取消命令,Linux中Shutdown命令实现定时自动关机

    Linux中Shutdown命令实现定时自动关机 Shutdown命令可以安全地关闭或重启Linux系统,在Linux中可以用shutdown命令实现自动定时关机的功能,它在Linux系统关闭之前给系 ...

最新文章

  1. java参数传递:值传递还是引用传递
  2. 使用Axis2创建一个简单的WebService服务
  3. oracle date类型,向Oracle中插入date数据类型
  4. ATF(TF-A)的编译方法
  5. 8个超好用的Python内置函数
  6. 【算法】一个简单的决策树(DT)原理
  7. The Ransom of Red Chief
  8. java 资深_Java架构师之路:从Java码农到资深架构师
  9. [转]博士的学习经验!读后,令人茅塞顿开的科研经典之作
  10. 推荐一款轻量级好用的开源PDF阅读器,确实好用~
  11. 企业全面运营管理沙盘模拟心得_企业经营沙盘模拟心得总结
  12. linux中sendto函数路径,发送原始数据包时,sendto函数不使用struct sockaddr_ll中提供的MAC地址...
  13. java jdom2_JDOM 生成和解析XML(二)
  14. 手机打开php格式的文件,手机上打开php格式文件|如何打开php文件?
  15. 人脑VS机器? AI时代经济决策的机遇与挑战?
  16. DATEDIF函数:
  17. 小O地图EXE版V0.9.5.5 - 功能总览
  18. UART串口通信常用协议对比——rs232、485的区别
  19. 单片机控制秒表C语言程序,89C51单片机秒表的设计(全文完整版)
  20. Git分支 查看branch 创建 切换checkout 合并merge(先切回主分支) 删除branch -d 推送push

热门文章

  1. 一起读论文15:遥控移动机器人的气源定位策略
  2. 综述自动驾驶中的计算机视觉Computer Vision for Autonomous Vehicles: Problems, Datasets and State-of-the-Art(上)
  3. 改善灰暗模糊 美图秀秀还原照片清晰质感
  4. 青岛理工大学计算机网络期末考试,青岛理工大学Java期末考试试卷B原卷.doc
  5. 如何将word转化为pdf(Java版)
  6. 【NLP】第15章 从 NLP 到与任务无关的 Transformer 模型
  7. 五行顺口溜_五行纳音口诀,五行相生相克歌诀
  8. ubuntu 微信显示乱码方框wine
  9. 在VScode使用nodemon重启服务端代码,win10系统禁止运行脚本解决方案
  10. 关于小程序在vs code上运行时报-4058