Skript für Akku-Kapazität

Vor langer Zeit hatte ich mal ein Skript geschrieben, welches bei meinem Linux-System die Akku-Kapazität prüft (jede Minute per cron Job). Sobald die Kapazität unter 10% sinkt, wird das System mit einer Hinweismeldung heruntergefahren.
#!/bin/sh

########################################
# Skript faehrt System sicher herunter #
# falls die Akku-Kapazitaet unter 10%  #
# sinkt.                               #
#                                      #
# Skript - Version: 1.2                #
#                                      #
# Autor: Ronny Friedland               #
########################################

# Voraussetzung:
#      - installiertes und konfiguriertes ACPI
#      - bc
#      - cat
#      - Skript muss mit ROOT-Berechtigung ausgeführt werden

# getestet unter:
#      - DEBIAN 3.1 / 4.0
STATE_CAP=''
STATE_CHARGE="charg"

# IF-Abfrage, ob Batteriebetrieb
if [ $STATE_CAP = $(cat /proc/acpi/battery/BAT0/state | grep 'remaining capacity') 2> /dev/null ]; then
{
    echo "kein Batteriebetrieb" > /dev/null
}
else
{
    # Falls Akku gerade geladen wird
    if [ $STATE_CHARGE = $(cat /proc/acpi/battery/BAT0/state | grep charging | cut -c26-30) ]; then
    {
        echo "Batterie wird geladen" > /dev/null
    }
    # berechnen der kritischen Grenze - Standard: 10%
    elif [ 10 -gt  $(echo $(echo $(cat /proc/acpi/battery/BAT0/state | grep remaining | cut -c26-29) '* 100' | bc ) / $(cat /proc/acpi/battery/BAT0/info | grep 'last full' | cut -c26-29) | bc) ]; then
    {
    if [ "ps a | grep shutdown | cut -c28-35" != "shutdown" ]; then
        # Warnmeldung ausgeben und System mit einer Minute Verzoegerung herunterfahren
            /sbin/shutdown -h +1 "Batteriestatus kritisch - System wird heruntergefahren !!!"
    fi

    #if [ "$DISPLAY" == "" ]; then
        #xmessage "Batteriestatus kritisch - System wird heruntergefahren !!!"
    #fi
    }
    else
    {
    # Beim Aufruf des Skriptes wird der aktuelle Batteriestatus in das File '/var/log/messages' geleitet
    echo $(date) 'Batterie-Kapazitaet:' $(echo $(echo $(cat /proc/acpi/battery/BAT0/state | grep remaining | cut -c26-29) '* 100' | bc ) / $(cat /proc/acpi/battery/BAT0/info | grep 'last full' | cut -c26-29) | bc) '%' >> /var/log/messages
    }
    fi
}
fi

########################################
# Skript - Ende                        #
########################################

Ich habe mir die Konsole 10 (unter Debian standardmäßig frei) so eingerichtet, dass mir dort der Inhalt von /var/log/messages ausgegeben wird.

tail -f /var/log/messages > /dev/tty10

Das Skript läuft per cron jede Minute:

*/1 * * * *

Ab Debian 6.0 funktioniert das Skript nicht mehr, da das ACPI nicht mehr kompatibel mit der vorherigen Version ist. Daher musste ich das Skript wie folgt anpassen:

#!/bin/sh

########################################
# Skript faehrt System sicher herunter #
# falls die Akku-Kapazitaet unter 10%  #
# sinkt.                               #
#                                      #
# Skript - Version: 2.0                #
#                                      #
# Autor: Ronny Friedland               #
########################################

# Systemvoraussetzung:
#      - installiertes und konfiguriertes ACPI
#      - bc Rechner
#      - cat - Befehl
#      - ROOT-Berechtigung

# getestet unter:
#      - DEBIAN 6.0 SQUEEZE dt
#      - ACPI - Version: 20090903

CURRENT=`cat /sys/class/power_supply/BAT0/energy_now`
MAX=`cat /sys/class/power_supply/BAT0/energy_full`
STATE=`cat /sys/class/power_supply/BAT0/status`
SHUTDOWN_PROCESS=`ps a | grep shutdown | wc -l`

# IF-Abfrage, ob Batteriebetrieb
if [ $STATE = 'Charging' ]; then
{
    echo "kein Batteriebetrieb, Akku wird geladen" > /dev/null
}
else
{
    # berechnen der kritischen Grenze - Standard: 10%
    if [ 10 -gt  $(($CURRENT * 100 / $MAX)) ]; then
    {
        if [ 1 -lt $($SHUTDOWN_PROCESS) ]; then
            # Warnmeldung ausgeben und System mit einer Minute Verzoegerung herunterfahren
            /sbin/shutdown -h +1 "Batteriestatus kritisch - System wird heruntergefahren !!!"
        fi

        #if [ "$DISPLAY" == "" ]; then
            #xmessage "Batteriestatus kritisch - System wird heruntergefahren !!!"
        #fi
    }
    else
    {
        # Beim Aufruf des Skriptes wird der aktuelle Batteriestatus in das File '/var/log/messages' geleitet
        echo $(date) 'Batterie-Kapazitaet:' $(($CURRENT * 100 / $MAX)) '%' >> /var/log/messages
    }
    fi
}
fi

########################################
# Skript - Ende                        #
########################################