Поиск по сайту:

Как проверить аккумулятор ноутбука с Linux из командной строки


Ноутбуки позволяют работать где угодно. Ну, только до тех пор, пока есть жизнь в батарее вашего ноутбука. Вот как проверить аккумулятор в командной строке Linux.

Аккумулятор для ноутбука

Отключенный от сетевого адаптера переменного тока, ваш ноутбук во всем полностью зависит от своей батареи. Включение экрана, использование жестких дисков, доступ к Wi-Fi и чтение пользовательского ввода — все это резко останавливается, если ваша батарея не справляется с работой.

Производители не могут прийти к единому мнению, хорошо это или плохо, оставлять ноутбук постоянно подключенным к сети. Если вы не хотите этого делать, то ваш ноутбук обычно не будет заряжен на 100%, когда вы выходите с ним на улицу.

Батареи также ухудшаются в течение срока их полезного использования. Таким образом, старая батарея не может сохранять тот же заряд, что и новая. И очень маловероятно, что даже когда он был новым, можно было получить то, что заявлял производитель в своей рекламе.

Знание того, что вы должны следить за зарядом батареи, является неотъемлемой частью использования ноутбука. Ничего нового. Но что, если вам нужно проверить батарею из командной строки?

Возможно, вы находитесь вне дома и удаленно подключаетесь к ноутбуку в своем доме с помощью SSH, и вы не можете вспомнить, подключен ли он к сети или работает от батареи. Возможно, вы используете ноутбук в качестве сервера без графического интерфейса или с мозаичным оконным менеджером, и у вас нет отображения заряда батареи на экране.

Возможность узнать состояние питания вашего ноутбука в командной строке означает, что вы также можете включить эти методы в сценарии.

Проверка аккумулятора с помощью upower

Команду upower можно использовать, чтобы узнать, какие источники питания и батареи доступны для вашего ноутбука. Как только вы обнаружите их, вы можете запросить более подробную информацию.

Параметр -e (перечислить) перечисляет все источники питания, которые он может найти.

upower -e

Первая запись предназначена для адаптера переменного тока. Второе — аккумулятор. Вы можете обнаружить, что в вашем ноутбуке установлено несколько аккумуляторов. Также обратите внимание, что первая батарея иногда нумеруется единицей, а иногда нулевой, в соответствии с предпочтениями производителя.

Запись «DisplayDevice» не является источником питания. Это составное устройство, представляющее значок состояния для отображения в среде рабочего стола.

Чтобы поближе взглянуть на нашу батарею, мы воспользуемся опцией -i (информация) и передадим полный дескриптор батареи.

upower -i /org/freedesktop/UPower/devices/battery_BAT1

Двумя элементами, представляющими наибольший интерес, являются значение «Время до опустошения» и значение «Процент». Они дают представление о продолжительности, в течение которой батарея может продолжать питать ноутбук, и о проценте оставшегося заряда батареи.

Важно отметить, что продолжительность связана с текущей активностью ноутбука. Если нагрузка на ноутбук увеличится, эта продолжительность уменьшится.

Использование нашего тестового ноутбука удаленно через SSH-соединение означало, что встроенный дисплей ноутбука не использовался. Он автоматически отключается через короткий промежуток времени. При выключенном экране время автономной работы ноутбука было более чем на час дольше, чем при освещенном экране.

Если адаптер переменного тока подключен, информация, возвращаемая upower, немного отличается.

upower -i /org/freedesktop/UPower/devices/battery_BAT1

Значение «Время до полного разряда» было заменено значением «Время до полного заполнения», которое представляет собой время, оставшееся до того, как батарея достигнет 100%. Значение «название значка» также изменилось на «батарея-полная-зарядка-символическое», отражающее наличие сетевого питания.

Мы также можем более подробно рассмотреть адаптер переменного тока.

upower -i /org/freedesktop/UPower/devices/line_power_ACAD

Значение «Онлайн» будет отображать «да», если адаптер переменного тока подключен, и «нет», если он отключен.

Изучение содержимого /sys/class/power_supply/

На ноутбуке каталог «/sys/class/power_supply/» содержит информацию, которую мы можем использовать с пользой. Два подкаталога — «ACAD» и «BAT1» — содержат информацию, на которую мы можем ссылаться, чтобы проверить емкость аккумулятора и подключен ли адаптер переменного тока.

Обратите внимание, что подкаталог батареи на вашем ноутбуке может называться «BAT0». Если на вашем ноутбуке установлено несколько аккумуляторов, у вас будет несколько подкаталогов аккумуляторов.

Файл с именем «онлайн» в подкаталоге «ACAD» содержит цифру «1», если адаптер переменного тока подключен, и цифру «ноль», если он не подключен.

Файл с именем «capacity» в подкаталоге «BAT1» содержит значение состояния заряда батареи.

ls /sys/class/power_supply/
cat /sys/class/power_supply/ACAD/online
cat /sys/class/power_supply/BAT1/capacity

К этому ноутбуку подключен адаптер переменного тока, а заряд батареи составляет 81%.

Поскольку эти два значения представлены просто и без украшений, они идеально подходят для использования в скриптах.

Допустим, у вас есть сценарий резервного копирования, который вы хотите выполнять только в том случае, если присутствует питание переменного тока или если заряд батареи превышает 70%. Эта заглушка скрипта показывает, как этого можно добиться.

#!/bin/bash

charge_level="$(cat /sys/class/power_supply/BAT1/capacity)"

ac_adapter="$(cat /sys/class/power_supply/ACAD/online)"

if [[ ac_adapter -eq 0 ]]; 

then 

  if [[ charge_level < 70 ]]; 

  then 

    echo "Insufficient battery charge for backup:" $charge_level 

  else 

    echo "Sufficient battery charge, starting backup:" $charge_level 

  fi 

else

  echo "On Mains power, starting backup." 

fi

Сценарий получает значения из двух файлов и сохраняет их в переменных charge_level и ac_adapter.

Если адаптер переменного тока не подключен, значение в ac_adapter будет равно нулю. Если это так, скрипт проверяет заряд батареи в charge_level. Если заряд батареи превышает 70%, запускается резервное копирование.

Если адаптер переменного тока подключен, резервное копирование выполняется, и скрипт не проверяет уровень заряда аккумулятора.

Скопируйте скрипт в редактор и сохраните его как «battery.sh». Убедитесь, что вы используете правильный путь к подкаталогу батареи на вашем ноутбуке.

Нам нужно сделать скрипт исполняемым с помощью команды chmod:

chmod +x battery.sh

Теперь мы можем запустить скрипт. Адаптер переменного тока подключен.

./battery.sh

Давайте отключим адаптер переменного тока и запустим его снова.

./battery.sh

Состояние питания ноутбука определяется правильно, и сценарий действует соответствующим образом.

Проверка батареи с помощью acpi

Если у вас установлен пакет расширенной конфигурации и интерфейса питания, вы можете использовать его для запроса состояния батареи и питания ноутбука. Если он у вас не установлен, это небольшой пакет, который устанавливается очень быстро.

В Ubuntu вы можете установить его с помощью этой команды.

sudo apt install acpi

В Fedora вы будете использовать:

sudo dnf install acpi

На Manjaro вы должны ввести:

sudo pacman -Sy acpi

Мы будем использовать команду с параметром -a (адаптер переменного тока), а затем еще раз с параметром -b (аккумулятор). Наконец, мы запустим его с опцией -b (батарея) и опцией -i (информация). Это дает немного дополнительной информации, если таковая имеется.

acpi -a
acpi -b
acpi -bi

Знание - сила

И теперь вы можете получить знания о питании вашего ноутбука.

Возможность проверки сценариями наличия питания от сети или достаточного заряда батареи для выполнения ресурсоемких или длительных задач, таких как образы системы или обновления, является особенно полезной.