我希望能够帮助我在 iMac 通过 UPS 运行时检测到电源故障时关闭它。
我的设置是 APC SMT750i UPS,为两个 Synology NAS、iMac 和网络套件(路由器、交换机等)供电。一切都很好。Synology 运行 Linux 和 NUT 的变体。我使用 MacPorts 在 iMac(High Sierra 10.13.6)上安装了 NUT(v 2.6.5)。一个 NAS 通过 USB 直接连接到 UPS,并充当 NUT 网络中的“主设备”,另一个 NAS 和 iMac 是“从设备”。
断电时,主服务器检测 UPS 的状态并将其广播给从服务器,从服务器均收到该消息。NAS 均按照配置正确进入“安全模式”。iMac 收到状态更改消息并反复提醒登录用户,但实际上并没有关闭,正如我希望的那样,并且相信我已经将其配置为可以执行此操作。
我遵循了在网上找到的所有建议,尤其是:
https://diktiosolutions.eu/en/synology/synology-ups-nut-en/
我究竟做错了什么?
Mac NUT 配置文件:
/etc/upsmon.conf
RUN_AS_USER root
MONITOR [email protected] 1 monuser ****** slave
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -u -h +1"
NOTIFYCMD /opt/local/sbin/upssched
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYFLAG ONLINE EXEC+SYSLOG+WALL
NOTIFYFLAG ONBATT EXEC+SYSLOG+WALL
NOTIFYFLAG LOWBATT EXEC+SYSLOG+WALL
NOTIFYFLAG FSD EXEC+SYSLOG+WALL
NOTIFYFLAG COMMOK EXEC+SYSLOG
NOTIFYFLAG COMMBAD EXEC+SYSLOG
NOTIFYFLAG SHUTDOWN EXEC+SYSLOG+WALL
NOTIFYFLAG REPLBATT EXEC+SYSLOG+WALL
NOTIFYFLAG NOCOMM EXEC+SYSLOG+WALL
NOTIFYFLAG NOPARENT EXEC+SYSLOG+WALL
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
/etc/upssched.conf
CMDSCRIPT /opt/local/bin/upssched-cmd
PIPEFN /opt/local/var/db/ups/upssched/upssched.pipe
LOCKFN /opt/local/var/db/ups/upssched/upssched.lock
AT ONBATT [email protected] EXECUTE on-battery
AT ONLINE [email protected] EXECUTE ups-back-on-line
AT COMMBAD [email protected] START-TIMER upsgone 75
AT COMMOK [email protected] CANCEL-TIMER upsgone
/bin/upssched-cmd
#! /bin/sh
case $1 in
upsgone)
logger -t upssched-cmd "Lost communication with UPS"
/usr/bin/osascript -e 'tell app (path to frontmost application as text) to display dialog "Lost contact with UPS server" buttons {"OK"} default button 1 with icon note'
;;
on-battery)
logger -t upssched-cmd "UPS is running on battery"
/usr/bin/osascript -e 'tell app "System Events" to display dialog "Power failure. Save your work" buttons {"OK"} default button 1'
;;
ups-back-on-line)
logger -t upssched-cmd "UPS is running on utility power"
/usr/bin/osascript -e 'tell app (path to frontmost application as text) to display dialog "Power restored to UPS" giving up after 600 buttons {"OK"} default button 1 with icon note'
;;
*)
logger -t upssched-cmd "Unrecognized command: $1"
/usr/bin/osascript -e "tell app (path to frontmost application as text) to display dialog \"upssched-cmd: unsupported command $1\" buttons {\"OK\"} default button 1 with icon caution"
;;
esac
答案1
我解决这个令人头痛的问题的方法确实对我的设置有效。
UPS1 - cyberpower 800 瓦 UPS,连接以下设备
- 列表项 Synology diskstation
- 列表项目 8 交换机/集线器
- 列表项网关
UPS2 - Cyber-power 300 瓦 UPS,连接以下设备
- 列表项时间机器外部硬盘
- 列表项 Mac Mini
这就是想法。
UPS1 将通过启用 UPS 支持选项连接到 Synology 磁盘站 - 然后磁盘站进入安全模式之前的时间,我默认设置为 5 分钟 - 然后在连接到 UPS1 的第二个 UPS2 上连接到我的 Mac mini,选项设置为如果 UPS1 耗尽电池,则 USP2 电池将启动,然后将 Mac mini 设置为关机等。或者您也可以在其独立插座上添加 USP1 和 UPS2,然后从那里指示设置。