如何從網路 UPS 工具用戶端關閉 macOS/mac OSX - NUT

如何從網路 UPS 工具用戶端關閉 macOS/mac OSX - NUT

我正在尋求協助,以在使用 UPS 運行時檢測到電源故障時關閉 iMac。

我的設定是 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 收到狀態變更 OK 並重複提醒登入用戶,但實際上並沒有關閉,正如我想要並相信我已經將其配置為那樣。

我遵循了網上可以找到的所有建議,特別是在:

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 Diskstation - 然後是 Disk Station 進入安全模式之前的時間,我預設為 5 分鐘 - 然後在連接到 UPS1 的第二個 UPS2 上設定選項到我的 Mac mini如果UPS1耗盡電池,則USP2 電池將啟動,然後將mac mini 設定為關閉等。或者您也可以在其獨立插座上新增 USP1 和 UPS2,然後也從那裡指定設定。

相關內容