最後更新: 2020-08-05
目錄
Hardware
APC BACK-UPS CS 系列
CS 650
Port
- Battery backup x 3
- surge only x 1 <-- alway on (not controlled by the On/Off switch.)
-
Analog phone line for phone/fax/modem/DSL (Data Line Protection)
-
Communications & Management Interface Port(s): USB(RJ-45 to USB)
Runtime
# 600 VA
- Alarm when on battery(Four Beeps Every 30 Seconds)
- Distinctive low battery alarm
- Overload continuous tone alarm
電池壽命
Battery: RBC17 / BATT17-1209
Batteries typically last 3-6 years, shorter if subjected to frequent power outages or elevated temperatures.
RBC17 v.s. BATT17-1209
BATT17-1209: Energy efficient product
Install apcupsd
Install
# Ubuntu 16, 18
apt-get install apcupsd
# Centos 7, 8
yum install apcupsd
Checking cable
ls /dev/usb/hiddev*
/dev/usb/hiddev0
lsusb -v -d '051d:' | less
... iProduct 2 Smart-UPS C 1500 FW:UPS 10.0 / ID=1005 iSerial 3 ???????????? ...
設定 apcupsd
Config
- /etc/default/apcupsd
- /etc/apcupsd/apcupsd.conf
Basic Setting
/etc/apcupsd/apcupsd.conf
#### USB Cable Settings UPSCABLE usb # Cable: simple, smart, ether, usb ... UPSTYPE # 當 UPSCABLE 係 usb 時留空它autodetection # A "blank" DEVICE setting enables autodetection DEVICE /dev/usb/hiddev0 # Interval (in seconds) at which apcupsd polls the UPS for status. POLLTIME 60 #### 在使用電池行多耐才解發 shutdown # Note: BATTERYLEVEL, MINUTES, and TIMEOUT work in conjunction(first win) # The UPS has run on batteries 多耐後就會發動 shutdown # 0 => Disables this timer TIMEOUT 0 # The remaining battery percentage # below or equal to BATTERYLEVEL => apcupsd will initiate a system shutdown. BATTERYLEVEL 30 # the remaining runtime in minutes # below or equal to MINUTES => apcupsd will initiate a system shutdown. MINUTES 6 # Time in seconds between annoying users to signoff prior to system shutdown. 0 disables. ANNOY 300 # users are prevented from logging in during a power failure NOLOGON disable #### STATFILE # 多久 update 一次 STATFILE STATTIME 60 STATFILE /var/log/apcupsd.status
ANNOY 與 ANNOYDELAY
ANNOY sec
Specify the time in seconds between messages requesting logged in users to get off the system during a power failure.
This timer starts only when the UPS is running on batteries.
The default is 300 seconds (5 minutes)
apcupsd sends the annoy messages by invoking the apccontrol script with the annoyme argument.
The default is to send a wall message on Unix systems and a popup message in Windows.
Note that if "NOLOGON disable" is set, the annoy messages will also be disabled.(Default: disable)
ANNOYDELAY sec
Specify delay time in seconds before apcupsd begins requesting logged in users to get off the system during a power failure.
This timer starts only after the UPS is running on batteries. This timer is reset when the power returns.
The default is 60 seconds.
Thus, the first warning to log off the system occurs after 60 seconds on batteries, assuming that NOLOGON is not set to disable.
Start Service
# Ubuntu
/etc/default/apcupsd
ISCONFIGURED=yes # Meaning: IS CONFIGURED
/etc/init.d/apcupsd start
Starting UPS power management: apcupsd.
# Centos
systemctl start apcupsd
systemctl enable apcupsd
進階設定
ONBATTERYDELAY 30 # Default: 30
無電多久才觸發 "onbattery event" (powerout --N sec--> onbattery)
BEEPSTATE T # Default: 0
- 0 = zero delay after pwr fail,
- T = power fail + 30 sec,
- L = low battery,
- N = never
SELFTEST OFF # Unit: hours; Default: 336 (2 weeks)
Self test interval
- ON = at power on
- OFF =never
UPS Status
apcaccess status
APC : 001,027,0663 DATE : 2018-08-13 15:08:58 +0800 HOSTNAME : kvmhost VERSION : 3.14.12 (29 March 2014) debian UPSNAME : kvmhost CABLE : USB Cable DRIVER : USB UPS Driver UPSMODE : Stand Alone STARTTIME: 2018-08-13 15:08:49 +0800 MODEL : Smart-UPS C 1500 STATUS : ONLINE BCHARGE : 100.0 Percent TIMELEFT : 173.0 Minutes MBATTCHG : 10 Percent # 關機設定, 我 10% 電時啟動關機 MINTIMEL : 5 Minutes # MAXTIME : 0 Seconds # ALARMDEL : No alarm BATTV : 27.0 Volts NUMXFERS : 0 TONBATT : 0 Seconds CUMONBATT: 0 Seconds XOFFBATT : N/A STATFLAG : 0x05000008 MANDATE : 2016-02-07 SERIALNO : ???????????? NOMBATTV : 24.0 Volts FIRMWARE : UPS 10.0 / ID=1005 END APC : 2018-08-13 15:08:59 +0800
Remark
STATUS:
- ONLINE
- ONBATT
- OVERLOAD
- LOWBATT
- REPLACEBATT
- NOBATT
- COMMLOST
- ONLINE REPLACEBATT
ONLINE REPLACEBATT
The warning is triggered when a self-test fails.
---
MAXTIME : Max battery runtime (TIMEOUT) after which system is shutdown
BCHARGE: Current battery capacity charge percentage
---
NUMXFERS: Number of transfers to battery since apcupsd startup
TONBATT : Seconds currently on battery
CUMONBATT : Cumulative seconds on battery since apcupsd startup
--- Report ---
NUMXFERS: Number of transfers to battery since apcupsd startup
TONBATT: Seconds currently on battery
CUMONBATT: Cumulative seconds on battery since apcupsd startup
XOFFBATT: Date, time of last transfer off battery since apcupsd startup
LASTXFER: Reason for last transfer to battery since apcupsd startup
--- UPS / BATT 是否舊了 ---
MANDATE : UPS date of manufacture
BATTDATE : Date battery last replaced
Other Info
- LINEV : 224.0 Volts # Current input line voltage
- OUTPUTV : 230.0 Volts # Current UPS output voltage
- NOMPOWER: 400 Watts
- LOADPCT : 21.0 Percent # Percentage of UPS load capacity used as estimated by UPS
# 觸發跳去電池條件
- SENSE: Current UPS sensitivity setting for voltage fluctuations
- LOTRANS: Input line voltage below which UPS will switch to battery
- HITRANS: Input line voltage above which UPS will switch to battery
# 回復條件
RETPCT: Battery charge % required after power off to restore power
ALARM
ALARMDEL: Delay period before UPS starts sounding alarm
i.e.
ALARMDEL : 30 Seconds
# SELFTEST
- SELFTEST: Date and time of last self test since apcupsd startup
- STESTI: Self-test interval
apcupsd Events Log
/etc/apcupsd/apcupsd.conf # U22
EVENTSFILE /var/log/apcupsd.events # EVENTSFILE 那 file 保持 10KB 大 EVENTSFILEMAX 10
/var/log/apcupsd.events
... 2018-09-16 18:08:52 +0800 Power failure. 2018-09-16 18:08:53 +0800 Power is back. UPS running on mains. 2018-09-24 10:54:37 +0800 Power failure. 2018-09-24 10:54:43 +0800 Running on UPS batteries. 2018-09-24 10:56:10 +0800 Mains returned. No longer on UPS batteries. 2018-09-24 10:56:10 +0800 Power is back. UPS running on mains. 2018-09-25 23:21:31 +0800 Power failure. 2018-09-25 23:21:37 +0800 Running on UPS batteries. 2018-09-25 23:21:39 +0800 Mains returned. No longer on UPS batteries. 2018-09-25 23:21:39 +0800 Power is back. UPS running on mains.
Scripts
apcupsd -> apccontrol -> onbattery
event handler script
apccontrol { <event> <ups-name> <connected> <powered> }
內置 event script: changeme, commfailure, commok, offbattery, onbattery
Event:
powerout
apcupsd detects that the UPS has switched to battery power and it is not a self-test
Default action -- does nothing.
timeout (TIMEOUT)
send "UPS battery runtime limit exceeded. Doing shutdown." to wall and then exits.
After this event, apcupsd will immediately generate a doshutdown event.
runlimit (MINUTES)
sends "UPS battery discharge limit reached. Doing shutdown" to wall and then exits.
doshutdown
loadlimit (BATTERYLEVEL)
sends "UPS battery discharge limit reached. Doing shutdown" to wall and then exits.
doshutdown
doshutdown
1) sends "Beginning Shutdown Sequence" to wall
2) calls "shutdown -h now"
寫 Script
If you do not want apccontrol to also execute its default action for the selected event,
your program or script must exit with an exit status of 99
echo "wall Server no power" > doshutdown
echo "exit 99" >> doshutdown
chmod 700 doshutdown
Remark: Setting for test script
POLLTIME 20 TIMEOUT 60
systemctl restart apcupsd
參考
https://datahunter.org/ups#remote_shutdown
設定/測試 UPS (apctest)
A program that enables the running of certain low-level tests / set to check UPS
* apcupsd stop 後才可以用 apctest
* apctest displays a menu of options
* programming of the values of the UPS EEPROM configuration
apctest
... You are using a USB cable type, so I'm entering USB test mode Hello, this is the apcupsd Cable Test program. This part of apctest is for testing USB UPSes. Getting UPS capabilities...SUCCESS Please select the function you want to perform. 1) Test kill UPS power 2) Perform self-test 3) Read last self-test result 4) View/Change battery date 5) View manufacturing date 6) View/Change alarm behavior 7) View/Change sensitivity 8) View/Change low transfer voltage 9) View/Change high transfer voltage 10) Perform battery calibration 11) Test alarm 12) View/Change self-test interval Q) Quit
self-test 相關(2, 3, 12)
During a Self-Test the UPS will run on battery for approximately 10 seconds.
During this time it will test it's internal subsystems as well as the battery.
2) Perform self-test
This test instructs the UPS to perform a self-test operation and reports the result when the test completes. Clearing previous self test result...CLEARED Initiating self test...INITIATED Waiting for test to complete...COMPLETED Result of last self test: PASSED
3) Read last self-test result
Result of last self test: NO TEST PERFORMED
Or
12) View/Change self-test interval
Current Self-test interval: None Press... 0 for None 1 for On Power 2 for 7 Days 3 for 14 Days Q to Quit with no changes
Sensitivity
7) View/Change sensitivity
This setting should normally be set to High unless the UPS switches to battery power frequently
less sensitive setting will preserve UPS batteries. (connected equipment can tolerate the power quality)
Current sensitivity setting: MEDIUM Press... L for Low sensitivity M for Medium sensitivity H for High sensitivity Q to Quit with no changes
8) View/Change low transfer voltage
...
9) View/Change high transfer voltage
...
Battery (4, 10)
4) View/Change battery date
Current battery date: 05/22/2020 Enter new battery date (MM/DD/YYYY), blank to quit: 08/05/2020
10) Perform battery calibration
The runtime calibration discharges the UPS battery to approximately 25% of capacity.
* only be performed if your battery is charged to 100%
* It is recommended that battery runtime calibration be performed annually
(As batteries age, they tend to hold less charge)
Other Opts
-o, --power-off
turn off UPS completely
The UPS will not supply power to the system when the utility power returns
-k, --killpower
Power down the UPS in hibernate mode after a 10 second delay.
This option is normally only used by apcupsd itself to power down the UPS after a system shutdown has almost completed.
-p --kill-on-powerfail
apcupsd commands the UPS to power down in hibernate mode just before apcupsd starts the system shutdown.
This relies on the grace shutdown delay of a Smart-UPS being long enough to allow the system to shutdown completely before the UPS shuts off the power to the system and goes into hibernate mode.
This shutdown grace delay is a programmable value stored in a Smart-UPS EEPROM which can be changed using apctest(8).
In hibernate mode, the UPS will again supply power to the system when the utility power returns.
Refer to apcupsd.conf(5) for an alternative method using the KILLDELAY configuration directive and the only method available when using a Back-UPS or other UPS operating in simple signalling mode.
-t --term-on-powerfail
apcupsd exits immediately when it issues the system shutdown command.
This behaviour is useful for those systems where it is not possible to insert apcupsd commands in a halt script to issue the killpower command.
Without this option, apcupsd will wait for the SIGTERM signal from the system shutdown process before exiting.