如何从 Network UPS Tools 客户端关闭 macOS / mac OSX - NUT

如何从 Network UPS Tools 客户端关闭 macOS / mac OSX - NUT

我希望能够帮助我在 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://networkupstools.org/

如何在 MacOS 上启动时自动启动 NUT 客户端

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,然后从那里指示设置。

相关内容