выполнить скрипт на малой мощности ИБП

Я подключил свой ИБП к Ubuntu, и он узнал. Однако мне не нравятся параметры, которые я вижу в настройках питания Ubuntu. У меня есть другой компьютер, подключенный к тому же ИБП. Поэтому я хочу, чтобы рабочий стол Ubuntu выполнял сценарий, когда его энергопотребление составляет около 50%, чтобы мой второй компьютер также мог нормально переходить в спящий режим. И тогда я могу перевести свой компьютер с Ubuntu в спящий сценарий.

Можно ли сделать это таким образом, чтобы это не нарушало работу Ubuntu на мониторе ИБП? Я читал, что могу установить Nut, но у меня есть некоторые ошибки, может быть, это конфликт

● nut-monitor.service - Network UPS Tools - power device monitor and shutdown controller
   Loaded: loaded (/lib/systemd/system/nut-monitor.service; enabled; vendor preset: enabled)
   Active: failed (Result: protocol) since Sat 2019-07-13 02:09:46 MSK; 11ms ago
  Process: 13906 ExecStart=/sbin/upsmon (code=exited, status=0/SUCCESS)

Может быть, я могу перехватить какое-нибудь сообщение dmesg или проверить состояние ИБП с помощью какого-нибудь собственного инструмента?

1
задан 13 July 2019 в 02:19

1 ответ

Ubuntu автоматически отслеживает все состояние батарей:

Ubuntu Batteries Statuses

К той же информации, отображенной на экране GUI выше, можно также получить доступ от Вашего терминала / оболочка / сценарий удара (они - весь вид того же самого во многих отношениях).

Получить ту же информацию от использования CLI:

$ upower -i $(upower -e | grep -i UPS)
  native-path:          /sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.2/1-1.2:1.0/usbmisc/hiddev2
  vendor:               CPS
  model:                CP550HGa
  serial:               BFBB104#BI1.g
  power supply:         yes
  updated:              Fri 12 Jul 2019 06:35:56 PM MDT (12 seconds ago)
  has history:          yes
  has statistics:       yes
  ups
    present:             yes
    state:               fully-charged
    warning-level:       none
    time to empty:       25.5 minutes
    percentage:          100%
    icon-name:          'battery-full-charged-symbolic'

Затем сужать его к использованию процента:

$ upower -i $(upower -e | grep -i UPS) | grep -i percentage
    percentage:          100%

Затем извлечь второе использование столбца:

$ upower -i $(upower -e | grep -i UPS) | grep -i percentage | cut -d':' -f2
          100%

Затем извлечь только цифры и устранить ведущие пробелы и запаздывающее использование %:

$ upower -i $(upower -e | grep -i UPS) | grep -i percentage | sed 's/[^0-9]*//g'
100

Теперь присвойте то, что Вы хотите к переменной и отображаете ее:

$ PERCENT=$(upower -i $(upower -e | grep -i UPS) | grep -i percentage | sed 's/[^0-9]*//g')
$ echo $PERCENT
100

Следующий шаг должен записать сценарию что-то вроде этого

#!/bin/bash

while true; do
    PERCENT=$(upower -i $(upower -e | grep -i UPS) | grep -i percentage \
        | sed 's/[^0-9]*//g')
    if [[ "$PERCENT" -lt 50 ]] ; then
        # email my cell phone
        mail -s "Electricity grid has shut down, run home" someone@example.com
        # text my cell phone
        curl -X POST https://textbelt.com/text --data-urlencode \
            phone="999-333-4567" --data-urlencode \
            message="Electricity grid has shot down, run home" -d key=textbelt
    fi
    sleep 300 # Sleep for 5 minutes to reduce resource usage
done

Это - сценарий, который я использовал бы, в Вашем случае адаптируют его для спящего режима (у меня есть ноутбук, таким образом, я никогда не в спящем режиме). Мой UPS для оконного вентилятора, не ноутбука, который имеет свою собственную батарею и приостановлен, когда я работаю. Технология может использоваться по-другому различными людьми.

1
ответ дан 7 December 2019 в 15:00

Другие вопросы по тегам:

Похожие вопросы: