Energy Black: Un script sencillo que te avisará antes de que se agote la bateria

Iniciado por DtxdF, Marzo 15, 2020, 08:37:06 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Si estamos en un entorno sin interfaz gráfica en nuestra laptop necesitaremos un pequeño duende que nos avise cuando la bateria se esté agotando para evitar un apagado inesperado, por eso les regalo un pequeño script que se que los que estén aprendiendo a depender solamente de los comandos, les encantará.

energy_black:

Código: bash
#!/usr/bin/bash

let limit
limit_file="/etc/energy_black.conf"
charging=$(acpi | cut -d" " -f3 | sed "s/,//g")
let number=$(acpi | cut -d " " -f4 | sed "s/%,//g")

# Cargamos el limite de la bateria para avisar a los usuarios.

if ! [ -r "$limit_file" ];then
echo "You aren't permissions to read the limitations file."
exit 1

else
limit=$(cat "$limit_file")

fi

if [ $limit -le 0 ];then
echo "The limit number is not greater or equal than 0"
exit

fi

if [ $number -le $limit ] && [ "Discharging" = "$charging" ];then
echo "The porcentage of batery is $number%, please you have to plug the charger!" | wall

fi


energy_black.conf

Código: bash
15


Nota: Cuando energy_black verifique que quedan 15% de bateria mandará un aviso hasta que conectes el cargador.

Ahora crearemos un enlace blando (Cómo el acceso directo de Windows) en las rutas correspondientes:

Código: bash
chmod 755 energy_black
chmod 644 energy_black.conf
ln -s $PWD/energy_black /usr/local/bin/energy_black
ln -s $PWD/energy_black.conf /etc/energy_black.conf


Ahora iniciamos el «daemon» "cron" en caso de que no lo tengamos iniciado y asignamos una nueva tarea para éste:

Código: bash
service cron start
crontab -e


Código: text
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
* * * * * /usr/local/bin/energy_black


Con lo mostrado anteriormente se ejecutará cada minuto, pero pueden colocarle la comprobación que deseen, lo recomendable es medir cuanto dura la bateria dependiendo de nuestro uso y un tiempo que sea razonable, ya que la idea es que nos avise antes de que se descarge completamente.

Por cierto estas son las dependencias, que seguro ya las tenemos instaladas en nuestra distribución:

Código: text
sed
cron
acpi


Espero les guste y les ayude en algo...

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF