18/11/2015, 09:50
(Questo messaggio è stato modificato l'ultima volta il: 18/11/2015, 09:57 da Gabb.)
CE L'HO FATTA!!!! FUNZIONA!!!!
Grazie Gabriele per l'interessamento. E' stato "faticoso" per il mio livello di principiante assoluto. Ma ho imparato molto ed alla fine con grande soddisfazione. Ovviamente se trovate qualcosa che non va o si può migliorare segnalatemela. Sempre pronto ad apprendere
Riepilogo magari a beneficio di altri quanto fatto.
Il sistema funziona tramite tre file:
1. Lo script che monitora i cambiamenti nella cartella del server /XXXX/XXXXX. Se riscontra delle modifiche - tramite FIND- trova i file modificati e ne trasferisce il percorso in un file esiti.txt.
2. Il file esiti.txt che raccoglie le modifiche intervenute.
3. Uno script python (email.py) che invia una mail a destinatari predefiniti, riportando il percorso dei file modificati
Grazie Gabriele per l'interessamento. E' stato "faticoso" per il mio livello di principiante assoluto. Ma ho imparato molto ed alla fine con grande soddisfazione. Ovviamente se trovate qualcosa che non va o si può migliorare segnalatemela. Sempre pronto ad apprendere
Riepilogo magari a beneficio di altri quanto fatto.
Il sistema funziona tramite tre file:
1. Lo script che monitora i cambiamenti nella cartella del server /XXXX/XXXXX. Se riscontra delle modifiche - tramite FIND- trova i file modificati e ne trasferisce il percorso in un file esiti.txt.
Codice:
#!/bin/bash
# creo file con lista directory e file poi confronto differenza tra vecchio e nuovo file
cartella="/XXXX/XXX" #cartella da monitorare
ls -R -s $cartella > /tmp/now
while :
do
ls -R -s $cartella > /tmp/now
if diff /tmp/now /tmp/old > /dev/null ; then #confronto
echo "UGUALE" #azione se uguale
else
find /XXXXX/XXXXX/ -mmin -10 -type f -fprint /XXXXXX/esiti.txt #confronta i file modificati nella cartella da monitorare e scrive i risultati nel file esiti.txt
echo "DIVERSO...Mando mail" #azione se cambiamento
python /XXXXXXX/email.py #avvia script invio mail
cat /tmp/now > /tmp/old
fi
sleep 1 #intervallo
done
3. Uno script python (email.py) che invia una mail a destinatari predefiniti, riportando il percorso dei file modificati
Codice:
# coding: utf-8
#!/usr/bin/python
import smtplib
textfile = "/XXXXX/esiti.txt"
# Legge il file in formato stringa
fo = open(textfile, "r")
filecontent = (fo.read())
fo.close()
# Definisce la mail da inviare
sender = 'XXXXXXXX@gmail.com'
receivers = ['XXXXXXX@gmail.com']
marker = "AUNIQUEMARKER"
tuapass = "XXXXXXX"
body ="""
This is a test email to send an attachement.
"""
# Definisce gli headers della mail
part1 = """From: XXXXXX XXXXXX < XXXXXXX@gmail.com >
To: XXXXX XXXXXX < XXXXXXXXX@gmail.com >
Subject: XXXXXXXXXXX
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=%s
--%s
""" % (marker, marker)
# Definisce il contenuto della mail
part2 = "Nel server sono presenti nuovi file: \r\r %s " % filecontent
part3 = "\r\rFIRMA "
message = part1 + part2 + part3
#Invia la mail segnalando un errore nel caso di problemi
try:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(sender, tuapass)
server.sendmail(sender, receivers, message)
server.quit()
print ("Mail inviata con successo")
except SMTPException:
print ("Attenzione: non è stato possibile inviare la mail")