Есть UPS APC 5000 с сетевой картой. Необходимо отключать коректно компьютера , которые от него запитаны. Для этого нам понадобится утилита PowerChute Network Shutdown, скачиваем:
Устанавливаем, в зависимости от разрядности нужно выбирать версию, 4.2 или 4.3
Заходим по WEB
Проходим мастер настройки, логин и пароль нужны от нашего APC, а также его ip адресс
Переходим в Configure Events
Находим Runtime remaining below threshold, нажимаем на шестерню в столбце shutdown , ставим галочку включить и пишем количество секунд которое осталось до полного разряда ups.
Для пробуждения я использовал свой сервак с ubuntu на борту
#!/bin/bash
IP0="192.168.1.212"
IP1="192.168.1.6"
ip_mas=($IP0 $IP1) #Массив всех интерфейсов
MAC0="00:1f:02:22:d1:08"
MAC1="00:d5:5e:72:e2:69"
mac_mas=($MAC0 $MAC1) #Массив всех интерфейсов
line_voltage=`snmpget -v2c -c public 192.168.21.28 .1.3.6.1.4.1.318.1.1.1.4.1.1.0 |
sed -r 's/.* //g'`
#echo "Напряжение - "$line_voltage
runtime_remaining=`snmpget -v2c -c public 192.168.21.28 .1.3.6.1.4.1.318.1.1.1.2.2.3.0 | sed -r 's/.* //g' | cut -d":" -f2`
#echo "Оставшееся время - "$runtime_remaining
i=0
for var in `echo ${ip_mas[@]}`
do
ping=`ping -c5 ${ip_mas[$i]} | grep 'loss' | sed "s/%[^%]*$//g" | sed -r 's/.* //g'`
echo "потери при пинге " ${ip_mas[$i]} " = " $ping "%"
if [ "$line_voltage" -eq "2" ] && [ "$runtime_remaining" -gt "3" ] && [ "$ping" == "100" ]; then
wakeonlan ${mac_mas[$i]}
let i++
else
let i++
fi
done