Script Bash alerta batería baja Linux
Script Bash alerta batería baja Linux

Script Bash para obtener alerta de batería baja en Linux

Vamos a escribir un script de bash que dirá “Batería baja” cuando el porcentaje de carga de la batería vaya a estar por debajo de un valor umbral específico. ¿qué te parece?

Antes de comenzar esto, primero, debemos comprender algunos comandos básicos y terminología que se describen a continuación:

Antes que nada, eres nuevo en BASH?

1. Comandos Bash de batería

  • acpi: Este comando devuelve el porcentaje de batería cargada, si el dispositivo se está cargando o descargando y el tiempo restante antes de que la batería se descargue por completo.
//Por ejemplo, para instalarlo en sistemas Debian
sudo apt-get install acpi
Instalar acpi en Linux
Instalar acpi en Linux

Ejemplo: Echemos un vistazo a todas las opciones (modificadores) disponibles:

acpi -h
Comando acpi ayuda
Comando acpi ayuda

Mostrar porcentaje y nivel de batería en Linux:

acpi -b
Ejemplo de comando acpi
Ejemplo de comando acpi
Battery 0: Full, 100%
Battery 0: Discharging, 100%, 05:31:26 remaining


Aquí, Battery 0 significa que no se está cargando y Battery 1 significa que se está cargando. 100% es el porcentaje de batería cargada. 05:31:26 es el tiempo que queda antes de que hiberne.

  • notify-send: Este comando se utiliza para alertar, tipo ventanas emergentes de notificación en Linux. Tendremos la alerta de la advertencia de carga/descarga de la batería con este comando.
Ejemplo comando notify-send
Ejemplo comando notify-send
  • espeak: el comando espeak habla o narra cualquier parámetro que pase con él, por ejemplo, dirá “Hola Alexis” si ejecutas espeak "Hola Alexis". Espeak se puede instalar como cualquier paquete normal:
sudo apt install espeak
Instalar espeak en Linux
Instalar espeak en Linux

2. Crear script bash de batería

Estos son algunos filtros necesarios de Linux:

  • grep: el filtro grep se utiliza para buscar una cadena especificada en un archivo determinado.
  • cut: el filtro cut nos permite cortar una sección deseada del archivo de texto antes de la salida estándar.
  • sed: significa stream editor. Este filtro se utiliza para realizar la inserción, eliminación, búsqueda y reemplazo. Usaré sed aquí para reemplazar el signo "%" por "".

Explicación rápida:


  • Tomemos como ejemplo la salida: Battery 0: Discharging, 23%, 00:30:50 remaining. Para obtener el porcentaje de la batería sólo vamos a cortar el
    segundo valor que termina en ", ". Así que obtenemos el 23%. Ahora reemplazaremos el signo % por "", así que el 23% se cambiará a 23.
  • Si el cargador está enchufado, acpi muestra “charging“. Si no está enchufado, muestra “discharging“. Y si está enchufado y con carga completa, mostrará “full“.
  • Si acpi -b muestra charging, “grep -c” devolverá 1. De lo contrario, devolverá 0.
  • Con la sentencia if verificamos el estado del enchufe y porcentaje de batería. De allí, podemos modificar los parámetros. (por ejemplo el 30 o 100).
  • Utilizaremos espeak -ves para que la narración sea en idioma español.
  • Los iconos utilizados se ubicaran en el directorio /usr/local/bin/.
Archivos necesarios script bash
Archivos necesarios script bash

Y, lo siguiente viene a ser el script en BASH.

#!/bin/bash 
#Author: EsGeeks | Alexynior
battery_level=$(acpi -b |cut -d "," -f2| sed 's/%//g')
echo $battery_level
ac_power=$(acpi -b|grep -c "Full")
echo $ac_power
if [[ $ac_power -eq 1 && $battery_level -eq 100 ]]
then
export DISPLAY=:0.0
notify-send -i "/usr/local/bin/bateria_completa.png" "Alexis, la bateria esta completa." "Nivel: $battery_level% ";
espeak -ves "Carga Completa, Retira el cargador" -s 140
fi
if [[ $ac_power -eq 0 && $battery_level -gt 30 ]]
then
export DISPLAY=:0.0
notify-send -i "/usr/local/bin/bateria_baja.png" "Alexis, Bateria Aceptable" "Nivel: $battery_level%";
espeak -ves "Por favor, vuelve a comprobar más tarde" -s 140
fi
if [[ $ac_power -eq 0 && $battery_level -lt 30 ]]
then
export DISPLAY=:0.0
notify-send -i "/usr/local/bin/bateria_baja.png" "Alexis, Bateria Baja." "Nivel: $battery_level% ";
espeak -ves "Por favor, conecta el cargador" -s 140
fi
Script bash sobre batería Linux
Script bash sobre batería Linux

¿Cómo ejecutar este script?

Si eres principiante, realiza lo siguiente:

  1. Ejecuta nano script.sh (este será el archivo ejecutable)
  2. Copia y pega el contenido anterior, tal como se muestra en pantalla de arriba.
  3. Presiona las teclas Ctrl + O para guardar y, luego Ctrl + X para salir.
  4. Finalmente, ejecuta el script con el comando bash script.sh
script bash alerta batería completa
script bash alerta batería completa

Descarga

¿Deseas los iconos y el script listo para ejecutar? Solicítalo en los comentarios 😉

En realidad, he tratado de hacerlo entendible, pero si tienes algunas dudas estoy para ayudarte. Simplemente comenta o contáctame en mis redes sociales. En mi Instagram: @alexynior15 publicaré todas las demostraciones.

View this post on Instagram

▶️ CONTROLA LA BATERÍA DE TU PC/LAPTOP CON ESTE SCRIPT 🤷‍♂️ . 🔔 El siguiente SCRIPT te notifica por alerta (ventana emergente) y por audio (narración en español ), el porcentaje y estado de tu batería.🔋 . Pd: Lo sé, ojalá la voz fuera como la de Kaley Cuoco (Justine) en la película #whyhim. . 👇 Todos los detalles en el sitio web: 👇 . 🔗 https://esgeeks.com/?p=7821 . . . . . #esgeeks #informatica #tech #tecnologia #linuxfan #linux #linuxscript #scripts #script #bash #trucosinformática #TRUCOS #bateria #baterías #notificaciones #notifications #bashlinux #shell #linuxshell #scripting #computers #hack #lifehacks #linuxtricks #linuxlover #linuxuser #linuxadmin

A post shared by ESGEEKS (@esgeeks) on

Puedes configurar un trabajo cron [Guía Básica: Crear y administrar trabajos de Cron en Linux] para ejecutar este script cada hora. Entonces, el script verificará el porcentaje de batería y la carga/descarga cada hora y narrará el resultado.

Como siempre, mis recomendaciones extras:

¿Te gustaría más artículos sobre scripts o temas similares? Deja tu comentario y lo tendré en cuenta. Hasta la próxima!

Si te gusta el contenido y deseas apoyar a la mejora del sitio web, considera hacer una contribución ¡haciendo clic aquí por favor!. ¡NO ES OBLIGATORIO, GRACIAS! 🙂

¿Te ha gustado este artículo? Sigue este blog en su fanpage de  FacebookTwitterInstagram y/o YouTube para que no te pierdas del mejor contenido informático y hacking!

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda