Script pra verificar modificacoes em arquivo e enviar por email.

1. Script pra verificar modificacoes em arquivo e enviar por email.

SancheXM
sanchexm

(usa Ubuntu)

Enviado em 02/12/2011 - 11:08h

Ola pessoal, to com um problema e gostaria da ajuda de vcs pra tentar soluciona-lo, é o seguinte:
Tenho um script em python pra enviar email que funciona blz.
#################################################
#!/usr/bin/python
import smtplib

SMTP_SERVER = 'smtp_do_servidor'
SMTP_PORT = porta
LOGIN = 'login'
PASS = 'senha'

sender = 'email@email.com.br'
recipient = 'email@email.com.br'
subject = 'Arquivos disponiveis'
body = 'Existem arquivos disponiveis acesse o site para fazer o download.

body = "" + body + ""

headers = ["From: " + sender,
"Subject: " + subject,
"To: " + recipient,
"MIME-Version: 1.0",
"Content-Type: text/html"]
headers = "\r\n".join(headers)

session = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)

session.ehlo()
session.starttls()
session.ehlo
session.login(LOGIN, PASS)

session.sendmail(sender, recipient, headers + "\r\n\r\n" + body)
session.quit()
############################################
Tenho esse outro script que verifica se houve alguma alteracao nos arquivos dentro da subpasta /disponivel e usa o script acima pra mandar um email de aviso.
#!/bin/sh

X=`find /home/ftp/eXX/disponivel -cmin -5`

if [ ! -z "$X" ]; then
python enviar_email.py
fi;
####################################
Meu problema é o seguinte, dentra da pasta home/ftp eu tenho 140 pastas com duas subpasta cada,as subpastas(disponivel e enviar) dentro da pasta principal pra todos sao iguais exemplo:
/home/ftp/e100/disponivel
/home/ftp/e100/enviar
/home/ftp/e115/disponivel
/home/ftp/e115/enviar
e assim por diante.
Preciso que o script verifique dentro da pasta /home/ftp/xxx/disponivel se tem algum arquivo alterado e se tiver mandar um email pro dono da pasta avisando ele, e se ele alterar alguma coisa dentro da pasta /home/ftp/xxx/enviar o script me envie um email.
Entao eu tenho 140 pastas com 140 emails um pra cada pasta e o meu email pra que se houver alguma alteraçao dentro da pasta eu receba um aviso.
Inicialmente pensei em criar 140 scripts um pra cada pasta e agendar no cron, mas isso pra mim pra manutencao ficaria muito inviavel e acho q sobrecarregaria o servidor.
Abs a todos e valew pela atençao.




  


2. Re: Script pra verificar modificacoes em arquivo e enviar por email.

Adriano Moreira da Silva
adri3d

(usa Arch Linux)

Enviado em 02/12/2011 - 11:17h

mais fácil que toma doce de criança


#!/bin/bash

for PASTA in $(ls /home/ftp)
do

X=`find "/home/ftp/$PASTA/disponivel" -cmin -5`

if [ ! -z "$X" ]; then
python enviar_email.py
fi;

done




3. mas e os email.

SancheXM
sanchexm

(usa Ubuntu)

Enviado em 02/12/2011 - 11:35h

Vlw pela ajuda, mas e os email, eu teria q criar os 140 scripts mesmo, ou teria como fazer um so script padrao e ele buscaria os email em banco de dados ou no cadastro do usuarios no linux onde ta cadastrado todos os usuarios do ftp.


4. Re: Script pra verificar modificacoes em arquivo e enviar por email.

Adriano Moreira da Silva
adri3d

(usa Arch Linux)

Enviado em 02/12/2011 - 12:01h

uma solução meio simples seria criar um arquivo com o email em cada pasta



#!/bin/bash

for PASTA in $(ls /home/ftp)
do

X=`find "/home/ftp/$PASTA/disponivel" -cmin -5`

if [ ! -z "$X" ]; then
python enviar_email.py $(cat /home/ftp/$PASTA/email.txt)
fi;

done



e alterar o script que envia o email para receber por parametro o destino,
não domino python para sugerir como fazer isso, em shell poderia ser assim
com o sendEmail

#!/bin/bash

for PASTA in $(ls /home/ftp)
do

X=`find "/home/ftp/$PASTA/disponivel" -cmin -5`

if [ ! -z "$X" ]; then
sender="$USERNAME@$HOSTNAME"
recipient=$(cat /home/ftp/$PASTA/email.txt)
subject="Arquivos disponiveis"
body="Existem arquivos disponiveis acesse o site para fazer o download"
servidor_smtp="$HOSTNAME"

echo $body | sendEmail -f $sender -t $recipient -u $subject -s $servidor_smtp
fi

done





5. Re: Script pra verificar modificacoes em arquivo e enviar por email.

SancheXM
sanchexm

(usa Ubuntu)

Enviado em 02/12/2011 - 18:21h

Mais uma vez, muito obrigado, enquanto nao acho uma solucao pra evitar criar todos os arquivos, vou estar implantando essa sua solucao, abraço ate mais.