Avviso per mancanza corrente via e-mail con Linux

Vi è mai capitato che sia saltata la corrente mentre eravate in vacanza o comunque fuori casa per qualche giorno? Se la risposta è si sapete che non è una bella esperienza.

Per ovviare a questo problema l'ideale è montare un combinatore telefonico GSM che vi invii un SMS quando salta la corrente. Il problema è che questi aggeggi costano parecchio e allora chiediamo aiuto al nostro buon Linux.

E' sufficiente disporre di un PC portatile con Linux, una connessione ad internet e un piccolo gruppo di continuità a cui collegare il router per l'accesso ad internet (altrimenti se salta la corrente si spegne anche il router e addio connessione).

Innanzitutto bisogna assicurarsi che il proprio notebook possa inviare e-mail da linea di comando. Per farlo potete usare una di queste guide:

Per capire se il notebook è alimentato da rete (e non dalla batteria) è possibile utilizzare il seguente comando:

cat /proc/acpi/ac_adapter/ACAD/state

l'esito può essere:
state: on-line
oppure
state: off-line

Quindi si fa uno script simile al seguente che potremmo chiamare CheckCorrente.sh.

#!/bin/bash

cnt=0

while [ $cnt -lt 3 ]
do
    cat /proc/acpi/ac_adapter/ACAD/state > acpi.txt

    while read line
    do

        case $line in
            *"off-line"*)
                echo "Il PC non è più alimentato, si presume sia saltata la corrente. INTERVENIRE !!!!" | mail -s "ATTENZIONE: MANCA CORRENTE A CASA" miamail@gmail.com
                cnt=$(($cnt+1))
                echo $cnt;
                ;;
        esac

    done < "acpi.txt"

    sleep 5 # ritardo di 5 secondi

done

shutdown -h 0

Ovviamente va sostituito l'indirizzo e-mail miamail@gmail.com con il vostro indirizzo o quello del parente o vicino a cui affidate il compito di ripristinare la corrente

Lo script non fa altro che testare ogni 5 secondi lo stato dell'alimentazione da rete (il tempo potete impostarlo diversamente modificando il valore del comano sleep). Quando lo stato diventa off-line viene inviata una mail di avviso.

Dopo tre e-mail esce dal loop e spegne il notebook.

Quando volete che il notebook inizi a monitorare lo stato dell'alimentazione, ad esempio quando andate in vacanza, è sufficiente eseguire lo script da Terminale dando il seguente comando:

sudo /bin/sh CheckCorrente.sh

va utilizzato sudo perchè è necessario essere root per spegnere il PC con il comando shutdown.

Ed ora via, si parte per le vacanzeee 😀

Accidenti, quasi dimenticavo: ovviamente il router per la connessione ad internet deve essere sotto gruppo di continuità altrimenti la mail non esce 😉

(Letto 3.008 volte di cui 1 negli ultimi 30gg)
twitterlinkedinmailby feather

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *