Autore Topic: Aggiornare contenuto cartella condivisa  (Letto 10451 volte)

Offline AttilaGDM

  • Newbie
  • *
  • Post: 7
    • Mostra profilo
    • E-mail
Aggiornare contenuto cartella condivisa
« il: 03 Maggio 2009, 17:53:45 »
Salve a tutti!
Ho questo problema da porre: devo monitorare una cartella (su macchina WIN) e ricevere una mail quando viene aggiunto un file.
Ho montato con samba la cartella (mount -t cifs -o username=XXX,password=XXX //X.X.X.X/X /mnt/cartella) dopo aver installato "samba-client", ho installato "Inotify", "Dialog" e "Logsend", ma non va! Il tutto perchè (giustamente) non si aggiorna il contenuto della cartella condivisa. Allora mi chiedevo: è possibile creare uno script che aggiorni in automatico il contenuto della directory condivisa? Dovrebbe essere qualcosa di simile alla pressione del tasto F5 in nautilus. Si può fare?

Offline dankan77

  • Moderator
  • Hero Member
  • *****
  • Post: 1365
    • Mostra profilo
    • E-mail
Re: Aggiornare contenuto cartella condivisa
« Risposta #1 il: 04 Maggio 2009, 13:50:19 »
Se inserisci un semplice ls della tua cartella samba a crontab ogni 60 secondi ?


Ciao

Offline AttilaGDM

  • Newbie
  • *
  • Post: 7
    • Mostra profilo
    • E-mail
Re: Aggiornare contenuto cartella condivisa
« Risposta #2 il: 04 Maggio 2009, 17:26:40 »
Grazie della risposta dankan77!
Ho provato ed effettivamente mi aggiorna la cartella, ma ad ogni refresh della cartella, logsend mi invia una mail (penso sia xchè logsend intercetta ogni cambiamento relativo alla cartella): non sono stato però capace di risolvere il problema. Qualche idea? Se pensi esistano altre strade, posso anche ripartire da zero!
Grazie ancora!

Offline dankan77

  • Moderator
  • Hero Member
  • *****
  • Post: 1365
    • Mostra profilo
    • E-mail
Re: Aggiornare contenuto cartella condivisa
« Risposta #3 il: 04 Maggio 2009, 17:36:53 »
Forse non ho capito il problema...

Offline AttilaGDM

  • Newbie
  • *
  • Post: 7
    • Mostra profilo
    • E-mail
Re: Aggiornare contenuto cartella condivisa
« Risposta #4 il: 04 Maggio 2009, 18:18:37 »
Hai ragione: ho il problema in testa e non mi sono spiegato!
Quello che avrei voluto fare era:
1) Monitorare una cartella condivisa (cartella FTP)
2) Ricevere una mail per ogni nuovo file inserito.
La strada che ho seguito è stata:
1) Montare in locale la cartella condivisa
2) Installare "inotify" e "logsend"
3) far partire "Sendmail" per inviare la posta
Dopo aver creato un Job su cron (ogni 5 minuti) con "ls", logsend mi invia una mail anche se la cartella non viene modificata.
Non so se ho seguito la strada giusta, ma quello che volevo fare era "solo" monitorare una cartella.

Offline ciso39

  • Full Member
  • ***
  • Post: 79
    • Mostra profilo
Re: Aggiornare contenuto cartella condivisa
« Risposta #5 il: 04 Maggio 2009, 20:07:16 »
Ciao AttilaGDM

Prova a fare un "ls | wc -l" e ti restituisce il numero dei file che sono nella cartella
che vuoi monitorare.

Ciao

Offline AttilaGDM

  • Newbie
  • *
  • Post: 7
    • Mostra profilo
    • E-mail
Re: Aggiornare contenuto cartella condivisa
« Risposta #6 il: 04 Maggio 2009, 23:27:27 »
Grazie ad entrambi per le informazioni!
Adesso mi metto giù e cerco di tirar fuori qualcosa di usabile.
Grazie ancora!

Ciao

Offline AttilaGDM

  • Newbie
  • *
  • Post: 7
    • Mostra profilo
    • E-mail
Re: Aggiornare contenuto cartella condivisa
« Risposta #7 il: 06 Maggio 2009, 23:26:45 »
EUREKA!!!
Ho studiato un po' e sono riuscito ad ottenere quello che mi serviva!
Ho creato 2 script, questi i codici:

- counter.sh
#!/bin/bash
#
cd /mnt/ftproot
ls -R | wc -l > $HOME/counter.txt

- monitor.sh
#!/bin/bash
#
cd /mnt/ftproot
NUM_NOW=$(ls -R | wc -l)
NUM_COUNT=$(cat $HOME/counter.txt)
#echo $NUM_COUNT
#echo $NUM_NOW
if(("$NUM_NOW">"$NUM_COUNT"))
then
echo "Messaggio inviato automaticamente. La cartella FTP è stata modificata!" | mail -s"Modifica in cartella FTP" user@mail.com
$HOME/counter.sh
unset
exit
elif(("$NUM_NOW"<"$NUM_COUNT"))
then
$HOME/counter.sh
unset
exit
else
exit
fi
exit

Con crontab la mattina lancio counter.sh che conta tutti gli “oggetti” nella cartella e ne scrive il numero nel file counter.txt. Ogni 30 min. monitor.sh controlla se sono stati aggiunti dei files, se così è ($NUM_NOW">"$NUM_COUNT), mi invia una mail e scrive il nuovo numero. Se i files sono minori di quelli in counter.txt (potrei aver cancellato dei files), lancia solamente counter.sh per aggiornare il numero di "oggetti" presenti.
Li ho scritti ieri notte e li ho testati solo oggi: per ora sembrano funzionare!

Ciao a tutti e grazie delle dritte...

PS: Molto probabilmente il titolo che ho dato alla discussione è sbagliato!
« Ultima modifica: 06 Maggio 2009, 23:29:29 da AttilaGDM »