一种Linux网络中的UPS解决方案

发表于:2007-07-01来源:作者:点击数: 标签:
目标: 当机房断电后,UPS消耗电池时,即自动拨管理员的BP机报警,并在BP机上显示电池容量,若在电池消耗到一定量时仍不能恢复市电, 服务器 自动关机。 适用范围:仅适用于 APC Smart 系列的UPS。 所用软件:RedHat Linux 5.2, smartups-tools rpm package S
目标: 当机房断电后,UPS消耗电池时,即自动拨管理员的BP机报警,并在BP机上显示电池容量,若在电池消耗到一定量时仍不能恢复市电,服务器自动关机。

适用范围:仅适用于 APC Smart 系列的UPS。

所用软件:RedHat Linux 5.2, smartups-tools rpm package
SmartUPSTools homepage: http://www.exploits.org/~rkroll/smartupstools
SmartUPSTools rpm version: http://rufus.w3.org/linux/RPM/
安装指令:

1.安装rpm package smartupstools-0.34-1.rpm

2.接随UPS带的串行电缆到第二个串口,你必须给/dev/ttyS1写权限,并建立
ups到ttyS1的符号链接,因为Smartupstools配置文件/usr/etc/ups.conf中用的
设备是/dev/ups.
[shisd@sh /dev]$ ls ups ttyS1 -l
crwxrwxr-x 1 root root 4, 65 Jun 21 10:18 ttyS1
lrwxrwxrwx 1 root root 5 Mar 9 14:40 ups -> ttyS1

3.至此,然后启动UPS守护进程 #/etc/rc.d/init.d/upsd start, 记录文件是/var/log/ups

4.创建 cron job 每分钟监视 /var/log/ups,根据文件中的数据变化做出相应的反应。

5.# crontab -e
加下面的行 * * * * * /root/ups.sh ( 每分钟运行/root/ups.sh)

6.[shisd@sh root]$ more /root/ups.sh
#!/bin/sh
tail -c 3 /var/log/ups | grep "10" && mail -s "the UPS power fails" your_email_address
tail -c 3 /var/log/ups | grep "10" && /usr/bin/ppp-on
tail -1 /var/log/ups | cut -b23 | grep "0" && /usr/bin/ppp-on
tail -1 /var/log/ups | cut -b24 | grep "1" && /sbin/shutdown -h now

note:
第一行表明 当最后一栏变为 10 时,表明UPS断电,email 通知网管
第二行,同样,最后一栏变为 10 时,启动ppp开始拨号
第三行,当电池容量低于100 (100%)时,一直拨号
第四行,当电池容量低于20( 20%),自动关机。

7. 对于ppp-on,仅改动拨号号码即可。
[shisd@sh shisd]more /usr/bin/ppp-on
BATTERY_STATUS=`/usr/bin/tail -1 /var/log/ups | cut -b23-25`
TELEPHONE=127,1234567#,87654321*$BATTERY_STATUS

Note: 1234567为BP机号码:87654321为回电号码
就将变量BATTERY_STATUS值打在BP机上。

原文转自:http://www.ltesting.net