Наверно много у кого есть компьютер подключенный к UPS без обратной связи, и возникает задача научить его корректно выключаться при пропадании питания.
И наверняка при этом у вас есть какое-либо сетевое устройство с локальным IP адресом, не подключенным через этот UPS (например adsl модем, принт-сервер, DVB ресивер и т.п.). Решение заключается в том, что через определенный интервал скрипт запрашивает IP этого устройства, и если нет ответа через заданное время (естественно меньшее чем время работы от батареи) выключает компьютер.
Решение: берем скрипт во вложении, сохраняем где удобно (например /opt/scripts), делаем его исполняемым sudo chmod +x /opt/scripts/shutdown_on_no_ip.sh
ставим в автозагрузку : sudo gedit /etc/rc.local
добавляем строку (перед exit 0 ) /путь/к/скрипту -ip кого пингуем - -через сколько секунд- - сколько раз- пример: /opt/scripts/shutdown_on_no_ip.sh 192.168.1.1 60 5
т.е. будет пинговаться сетевое устройство с адресом 192.168.1.1 каждые 60 секунд 5 раз и при пропадании пинга компьютер выключится через 60*5=300 секунд