如果你有一个 UPS专门用于你的Ubuntu工作站,Ubuntu “电源管理”可以满足你的需求。详见 这篇文章。
如果你有一个APC UPS,另一个选择是使用apcupsd,这是一个更先进的工具来管理你的APC UPS。
UPS 保护 计算机 以免受(通常瞬间,但常常危险的)电力浪涌的影响,只需将计算机与 UPS 连接(通常通过 USB 连接)。apcupsd 是一个开源 软件,具有出色的 文档,并且还可以
- 在断电后几分钟内优雅地关闭计算机
- 当电源恢复时可以强制计算机重启(如果交流电恢复功能受计算机BIOS支持)
您可以使用命令行界面或 网页界面或图形界面(gapcmon)来监控您的UPS。
本教程中使用的APC UPS型号是“APC Back UPS BR1500GI RS 1500VA (LI)”。
安装
打开终端并输入
|
1
|
sudo apt-get install apcupsd |
(有关如何不使用命令行安装软件的信息,请参见这篇文章)。
安装后,目录/etc/apcupsd 包含:
- 配置文件
- apcupsd.conf 主配置文件
- hosts.conf 其他由同一台UPS支持的计算机(为从机提供NIS网络驱动程序)
- multimon.conf 在网页界面中显示的参数
- 可执行文件
- apccontrol 在这里,您将找到apcupsd可以管理的各种事件(停电等)。如果您想进行更改,请不要直接修改此文件,而是创建一个以事件名称命名的脚本并将其放置在/etc/apcupsd (例如自定义脚本/etc/apcupsd/doshutdown将在启用doshutdown事件时首先执行)。
- changeme 发送邮件以更换UPS电池
- commfailure 当与UPS的连接丢失时发送电子邮件
- commok 建立与UPS的连接时发送电子邮件
- 在电池模式下 当你的电脑使用电池供电时发送邮件
- onbattery 当你的电脑使用电池(UPS)时发送电子邮件
- 可执行文件(Debian 特定)
- ups-monitor Debian创建符号链接 /etc/init.d/ups-monitor → /etc/apcupsd/ups-monitor. 因此,Debian的停止脚本 (/etc/init.d/halt) 执行它。通过这种方式,它在系统关闭后(如果存在文件
/etc/apcupsd/apccontrol -killpower/etc/apcupsd/powerfail ,然后被删除) 杀死UPS的电源 - killpower 任何需要在UPS断电前执行的操作(apcupsd -killpower)
- ups-monitor Debian创建符号链接 /etc/init.d/ups-monitor → /etc/apcupsd/ups-monitor. 因此,Debian的停止脚本 (/etc/init.d/halt) 执行它。通过这种方式,它在系统关闭后(如果存在文件
- 临时文件
- powerfail apcupsd 在系统关机前创建的“标志文件”,以便告知停止脚本此次关机是由于停电(电源故障)
关于发送电子邮件的可执行文件
如果你需要这种电子邮件功能,你必须安装一个消息传输代理 (MTA)。一个轻量级的选择是 exim
|
1
|
sudo apt-get install exim4 |
此外,您需要转发root邮件到您的 电子邮件,因为 apcupsd 默认会发送邮件到 sysadmin。
见此帖了解详情。
关于不间断电源“杀电”
USB UPS的电源中断将在计算机关闭60秒后进行。否则,您需要在UPS的EEPROM中进行更改(不推荐)。
配置
步骤 1 – 编辑主配置文件
首先,创建主配置文件的备份:
|
1
|
sudo cp /etc/apcupsd/apcupsd.conf /etc/apcupsd/apcupsd.conf.bak |
使用你最喜欢的文本编辑器(我的情况是nano):
|
1
|
sudo nano /etc/apcupsd/apcupsd.conf |
查找和编辑
- 上行电缆,上行类型,设备
- 并可选地电池电量和 分钟
在大多数模型中,以下更改已经足够。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
十六
17
18
十九
20
21
22
23
24
25
26
27
28
29
三十
31
32
|
## apcupsd.conf v1.1 #### for apcupsd release 3.14.12 (29 March 2014) - debian## "apcupsd" POSIX config file## ========= General configuration parameters ============#...UPSCABLE usb...UPSTYPE usb...#DEVICE /dev/ttyS0## ======== Configuration parameters used during power failures ==========## Note: BATTERYLEVEL, MINUTES, and TIMEOUT work in conjunction, so# the first that occurs will cause the initation of a shutdown....# If during a power failure, the remaining battery percentage# (as reported by the UPS) is below or equal to BATTERYLEVEL,# apcupsd will initiate a system shutdown.BATTERYLEVEL 30...# If during a power failure, the remaining runtime in minutes# (as calculated internally by the UPS) is below or equal to MINUTES,# apcupsd, will initiate a system shutdown.MINUTES 10 |
步骤 2 – 编辑 /etc/default/apcupsd
使用你最喜欢的文本编辑器(我的情况是nano):
|
1
|
sudo nano /etc/default/apcupsd |
设置:
|
1
2
3
|
...ISCONFIGURED=yes... |
步骤 3 – 最后,重启 apcupsd
打开终端并输入:
|
1
|
sudo systemctl restart apcupsd.service |
查看日志
要查看apcupsd日志,请打开终端并输入:
|
1
|
tail /var/log/apcupsd.events |
命令行界面
获取您的 UPS状态信息,请使用命令:
|
1
|
apcaccess |
所以,在我的工作站(名为“athena”)中,输出是:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
十六
17
18
十九
20
21
22
23
24
25
26
27
28
29
三十
31
32
33
34
35
36
37
|
APC : 001,036,0875DATE : 2016-12-10 18:08:03 +0200HOSTNAME : athenaVERSION : 3.14.12 (29 March 2014) debianUPSNAME : athenaCABLE : USB CableDRIVER : USB UPS DriverUPSMODE : Stand AloneSTARTTIME: 2016-12-10 10:12:12 +0200MODEL : Back-UPS RS 1500GSTATUS : ONLINELINEV : 224.0 VoltsLOADPCT : 10.0 PercentBCHARGE : 100.0 PercentTIMELEFT : 66.7 MinutesMBATTCHG : 40 PercentMINTIMEL : 15 MinutesMAXTIME : 0 SecondsSENSE : MediumLOTRANS : 176.0 VoltsHITRANS : 294.0 VoltsALARMDEL : No alarmBATTV : 27.2 VoltsLASTXFER : Unacceptable line voltage changesNUMXFERS : 0TONBATT : 0 SecondsCUMONBATT: 0 SecondsXOFFBATT : N/ASELFTEST : NOSTATFLAG : 0x05000008SERIALNO : 3Q1106X37131BATTDATE : 2012-07-05NOMINV : 230 VoltsNOMBATTV : 24.0 VoltsNOMPOWER : 865 WattsFIRMWARE : 878.L4 .I USB FW:L4END APC : 2016-12-10 18:08:05 +0200 |
网页界面
apcupsd 提供了一个方便的网页界面来监控你的 UPS。要安装它,请打开终端并键入
|
1
|
sudo apt-get install apcupsd-cgi |
当然,使用网页界面需要一个网页服务器。例如,安装Apache(如果未安装):
|
1
|
sudo apt-get install apache2 |
要访问网页界面,请将浏览器指向
http://localhost/cgi-bin/apcupsd/multimon.cgi
这里是主页:

要获取详细信息,请点击“本地主机”链接

“所有数据”链接类似于 apcaccess 输出

图形界面 (gapcmon)
不幸的是gapcmon尚不可用于最新的 Ubuntu版本(如 Xenial 16.04 等)。详情请见这里。
然而,这是主屏幕的外观:

历史概要部分

详细信息部分

测试您的不间断电源
步骤 1
将 TIMEOUT 参数从 0 修改为 60,以强制 计算机 在断电后 60 秒内关机,而不是在电池耗尽前继续运行。
|
1
|
sudo nano /etc/apcupsd/apcupsd.conf |
|
1
2
3
|
...TIMEOUT 60... |
重启apcupsd服务:
|
1
|
sudo systemctl restart apcupsd.service |
步骤 2
断开不间断电源的电源。您的计算机将在60秒内关闭。
步骤 3
重置超时参数
|
1
|
sudo nano /etc/apcupsd/apcupsd.conf |
|
1
2
3
|
...TIMEOUT 0... |
重启apcupsd服务:
|
1
|
sudo systemctl restart apcupsd.service |

