• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
email script automatica ip cambio e temperatura

[Guida] Script Temperatura e Email automatica cambio IP
#1
Lightbulb 
Ecco un bello script che vi invierà un'email ogniqualvolta che la temperatura aumenta oltre la soglia da voi parametrizzata, oppure quando il vostro IP della linea ADSL cambierà.

Installiamo CronTab
Codice:
sudo apt-get install crontab
Installiamo SendMail
Codice:
sudo apt-get install sendemail
Criamo un file di script chiamato inforaspy.sh
Codice:
nano inforaspy.sh
Inserimo lo script nel file
Codice:
#!/bin/bash

############ Parametri da impostare ############
user="osmc"
tempmax="55"
mittente=""
dest=""
smtp=""
username=""
pass=""
############ Fine Parametri ############

ip_old="`tail /home/$user/.inforaspy`"
ip_now="`wget -qO- http://checkip.dyndns.org/ | sed "s/.* \([[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*\).*/\1/g"`"
temp="`cat /sys/class/thermal/thermal_zone0/temp | cut -c1-2`"
echo $ip_now > /home/$user/.inforaspy
if [ "$ip_old" != "$ip_now" ]; then
titoloip="Ip pubblico raspberry cambiato!"
ipresult="Il nuovo ip è $ip_now"
sendEmail -f $mittente -t $dest -u $titoloip -s $smtp -xu $username -xp $pass -m $ipresult
fi
if [ "$temp" -ge "$tempmax" ]; then
titolotemp="Allarme temperatura raspberry!"
tempresult="Occhio! Il raspberry ha superato la soglia di temperatura di controllo! Ora è a $temp gradi."
sendEmail -f $mittente -t $dest -u $titolotemp -s $smtp -xu $username -xp $pass -m $tempresult
fi
exit

Ovviamente, modificate esclusivamente solo i parametri:

user="osmc"
tempmax="65"
mittente=""
dest=""
smtp=""
username=""
pass=""

che non richiedono spiegazioni.

Diamo i permessi necessari
Codice:
Sudo chmod +x inforaspy.ah
Codice:
sudo mv inforaspy.sh /usr/bin/
Modifichiamo il CronTab
Codice:
sudo crontab –e
Con il seguente codice:
Codice:
*/10 * * * * /usr/bin/inforaspy.sh

E facciamo TEST (Purche non sia @GMAIL, x GMAIL proseguire con la guida)

Andiamo nella cartella dello scripts
Codice:
cd /usr/bin/
Eseguiamo lo scripts
Codice:
./inforaspy.sh


Se avete GMAIL è necessario cambiare qualche parametro.

Installiamo le librerie necessarie
Codice:
sudo apt-get install libio-socket-ssl-perl libnet-ssleay-perl perl

Modifichiamo il SendMail

Codice:
1907c1907
< if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3')) {
---
> if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3 TLSv1')) {

E come parametro SMTP dello script inforaspy.sh inseriamo

Codice:
smtp=smtp.gmail.com:587

Spero di esservi stato d'aiuto.

Questa la fonte, per GMAIL http://www.raspberrypi.org/phpBB3/viewto...36&t=21968
Risposta
#2
E' possibile utilizzare Libero al posto di gmail? perchè non ho voglia di creare un nuovo account google o di inserire nel raspberry la password in chiaro.
Risposta
#3
Certamente si..
Citazione:Se avete GMAIL è necessario cambiare qualche parametro...

Con tutti gli altri provider di posta, no..
Risposta
#4
Reclamo la paternità dello script! Big Grin Insieme ad un utente di rpyitalia.org, turk

In ogni modo ho anche implementato un controllo in caso di riavvio per mancanza di tensione a casa, appena ho un attimo lo condivido.
Ciao!

Inviato dal mio honor4X con Tapatalk
Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
#5
(26/09/2015, 09:35)striker82 Ha scritto: Ecco un bello script che vi invierà un'email ogniqualvolta che la temperatura aumenta oltre la soglia da voi parametrizzata, oppure quando il vostro IP della linea ADSL cambierà.

Installiamo CronTab
Codice:
sudo apt-get install crontab
Installiamo SendMail
Codice:
sudo apt-get install sendemail
Criamo un file di script chiamato inforaspy (tolto .sh)
Codice:
nano inforaspy
(tolto .sh)

Inserimo lo script nel file
Codice:
#!/bin/bash

############ Parametri da impostare ############
user="osmc"
tempmax="55"
mittente=""
dest=""
smtp=""
username=""
pass=""
############ Fine Parametri ############

ip_old="`tail /home/$user/.inforaspy`"
ip_now="`wget -qO icanhazip.com`"
temp="`cat /sys/class/thermal/thermal_zone0/temp | cut -c1-2`"
echo $ip_now > /home/$user/.inforaspy
if [ "$ip_old" != "$ip_now" ]; then
titoloip="Ip pubblico raspberry cambiato!"
ipresult="Il nuovo ip è $ip_now"
sendEmail -f $mittente -t $dest -u $titoloip -s $smtp -xu $username -xp $pass -m $ipresult
fi
if [ "$temp" -ge "$tempmax" ]; then
titolotemp="Allarme temperatura raspberry!"
tempresult="Occhio! Il raspberry ha superato la soglia di temperatura di controllo! Ora è a $temp gradi."
sendEmail -f $mittente -t $dest -u $titolotemp -s $smtp -xu $username -xp $pass -m $tempresult
fi
exit
(cambiato lo script di "ip_now" , questo è piu affidabile)

Ovviamente, modificate esclusivamente solo i parametri:

user="osmc"
tempmax="65"
mittente=""
dest=""
smtp=""
username=""
pass=""

che non richiedono spiegazioni.
Per completezza si Smile : user è il vostro utente (normalmente "pi" con raspbian), tempmax è la temperatura oltre la quale vi darà allarme, mittente è la mail dalla quale parte l'avviso, dest è l'email che lo riceverà, smtp è il server di invio posta della mail di partenza, username e password sono della mail di partenza.

Diamo i permessi necessari
Codice:
sudo chmod +x inforaspy
Codice:
sudo mv inforaspy /usr/bin/
(tolto .sh e la maiuscola su "Sudo")

Modifichiamo il CronTab
Codice:
sudo crontab –e
Con il seguente codice:
Codice:
*/10 * * * * /usr/bin/inforaspy
(tolto .sh)

E facciamo TEST (Purche non sia @GMAIL, x GMAIL proseguire con la guida)

Andiamo nella cartella dello scripts
Codice:
cd /usr/bin/
Eseguiamo lo scripts
Codice:
inforaspy
(tolto .sh e "./")

Se avete GMAIL è necessario cambiare qualche parametro.

Installiamo le librerie necessarie
Codice:
sudo apt-get install libio-socket-ssl-perl libnet-ssleay-perl perl

Modifichiamo il SendMail

Codice:
1907c1907
< if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3')) {
---
> if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3 TLSv1')) {

E come parametro SMTP dello script inforaspy inseriamo

Codice:
smtp=smtp.gmail.com:587

Spero di esservi stato d'aiuto.

Questa la fonte, per GMAIL http://www.raspberrypi.org/phpBB3/viewtopic.php?f=36&t=21968

mi sono permesso di modifica qualcosina.
aggiungo inoltre la parte per avvisare l'utente di un riavvio inaspettato (come un blackout)

creiamo uno script da eseguire in avvio:
Codice:
sudo nano /usr/bin/checkreboot

con questo: (dove c'è la parola UTENTE mettete il vostro utente)
Codice:
rm /home/UTENTE/.reboot
touch /home/UTENTE/.reboot

adesso lo rendiamo eseguibile:
Codice:
sudo chmod +x /usr/bin/checkreboot

poi lo facciamo eseguire all'avvio del raspberry inserendolo qui:
Codice:
sudo nano /etc/rc.local

badate bene di scrivere quanto di seguito NELLA RIGA APPENA PRIMA della parola exit 0, altrimento non verrà eseguito:

Codice:
checkreboot

infine apriamo lo script di inforaspy:
Codice:
sudo nano /usr/bin/inforaspy

e dentro mettiamo quanto segue (anche alla fine del file, purchè spostiate la parola exit sempre all'ultima riga)

Codice:
varriavvio="`tail /home/$user/.reboot`"
if [ ! "$varriavvio" ]; then
echo "sistema riavviato"
rm /home/$user/.reboot
touch /home/$user/.reboot
echo "1" > /home/$user/.reboot
titolo="raspberry riavviato"
testo="Sistema riavviato"
sendEmail -f $mittente -t $dest -u $titolo -s $smtp -xu $username -xp $pass -m $testo
fi

In soldoni questo script all'avvio crea un file vuoto in una cartella e il vostro inforaspy lo controlla. se è vuoto vuol dire che avete appena riavviato, se è pieno (con un numero, 1) vuol dire che all'ultimo controllo fatto era ancora acceso.

bye
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect