本文介绍在Linux系统上获取电池状态通知的Shell脚本,即可在电池电量已满(高于95%)或不足(低于20%)时获取电池状态通知。
前言 在Linux系统下长时间给电池充电会损坏电池,因此,在100%充电后请拔下电源线。当前没有默认的应用程序来通知电池何时充电或放电,并且您需要安装第三方应用程序来通知您。 为此,我通常安装Battery Monitor应用程序,但已弃用该应用程序,参考使用Aptik Battery Monitor监控Ubuntu笔记本电池用量。当前我创建了一个Shell脚本来获取通知,以下将分享出来。 现在,可以使用以下两个命令来确定笔记本电脑电池的充电和放电状态。 1、使用acpi命令: $ acpi -b Battery 0: Discharging, 71%, 00:58:39 remaining 2、使用upower命令: $ upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep -w 'state|percentage' | awk '{print $2}' discharging 64%
Shell脚本一:在电池电量高于95%或低于20%时发送警报 该脚本在启动时在后台运行,并每分钟检查一次电池状态,然后在电池电量超过95%充电或放电低于20%时发送通知。 直到电池电量超过20%或少于95%时,警报才会响起: $ sudo vi /opt/scripts/battery-status.sh #!/bin/bash while true do battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'` if [ $battery_level -ge 95 ]; then notify-send "Battery Full" "Level: ${battery_level}%" paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga elif [ $battery_level -le 20 ]; then notify-send --urgency=CRITICAL "Battery Low" "Level: ${battery_level}%" paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga fi sleep 60 done 脚本准备好后,设置可执行权限: $ sudo chmod +x /opt/scripts/battery-status.sh 最后,将脚本添加到用户配置文件的底部,对于系统范围,您需要在/etc/profile文件中添加脚本: $ vi /home/magi/.profile /opt/scripts/battery-status.sh & 重新引导您的Linux系统以进行检查: $ sudo reboot
Shell脚本二:在电池电量已充满(95%以上)或已放电(20%以下)时发送通知 该脚本与上面的脚本相似,但是由AC适配器负责。 如果您插入了交流适配器,并且电池的电量超过了95%,它将发出带有声音的通知,直到您拔下交流适配器后,通知才会停止:
如果拔下交流适配器,则电池电量降至20%之前,您将再也看不到该通知:
脚本如下: $ sudo vi /opt/scripts/battery-status-1.sh #!/bin/bash while true do export DISPLAY=:0.0 battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'` if on_ac_power; then if [ $battery_level -ge 95 ]; then notify-send "Battery Full" "Level: ${battery_level}% " paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga fi else if [ $battery_level -le 20 ]; then notify-send --urgency=CRITICAL "Battery Low" "Level: ${battery_level}%" paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga fi fi sleep 60 done 脚本准备好后,设置执行权限: $ sudo chmod +x /opt/scripts/battery-status-1.sh 最后,将该脚本添加到用户配置文件的底部,对于系统范围,您需要在/etc/profile文件中添加脚本: $ vi /home/magi/.profile /opt/scripts/battery-status-1.sh & 重新启动系统以进行检查: $ sudo reboot
相关主题 |