Are the multiple email messages identical, or does $FILE change?

Mike


On Thu, 22 Aug 2013, Rick Engebretson wrote:

> I'm not sure either. But it seems the pipe to while isn't a pipe from one 
> executable command output to another executable command input.
>
>
> Mike Miller wrote:
>> Isn't the question here why it would send multiple messages when the
>> event is close_write?
>> 
>> I'm not clear on how "while read FILE" works, but that is the part that
>> makes me suspicious.
>> 
>> Mike
>> 
>> 
>> On Wed, 21 Aug 2013, Jake Vath wrote:
>> 
>>> Do you want to stick with Bash for the solution?
>>> I've done something similar using Perl, so I bet I could modify it to do
>>> something like this.
>>> The Perl script uses *Inotify2*, so it's fairly portable.
>>> 
>>> If you want to stick with Bash, maybe you could assemble your email
>>> into a
>>> few different strings, such as to, from, subject, and body.
>>> You could only send an email with all the previous information and the
>>> body
>>> of the emails concatenated together.
>>> That way you could build the emails based on some events and then send
>>> one
>>> email on a specific event.
>>> Think of it as a sentinel-controlled event loop.
>>> 
>>> -> Jake
>>> 
>>> 
>>> On Tue, Aug 20, 2013 at 11:57 PM, B-o-B De Mars
>>> <mr.chew.baka at gmail.com>wrote:
>>> 
>>>> I need to monitor various directories contained in one base 
>>>> directory, and notify certain users by email when a file has been 
>>>> added or changed in their monitored directory. I wrote a script using 
>>>> inotifywait, and when an event is triggered it fires of an email to 
>>>> the user with the location & the new file name.
>>>> 
>>>> The script is working, but can generate many emails for one event 
>>>> (saving a large file for example).
>>>> 
>>>> I have tried many of the different --event types available in 
>>>> inotifywait to see if I could get it down to one notification. No 
>>>> luck yet. Here is the basic outline of the script. Any thoughts on 
>>>> how I might be able to get this to only send one email per file would 
>>>> be greatly appreciated.
>>>> 
>>>> #!/bin/bash
>>>> #
>>>> # usage: script DIR email-to-addr
>>>> 
>>>> DIR=$1
>>>> EMAILTO=$2
>>>> 
>>>> inotifywait --recursive --monitor --quiet --exclude '.*\.tmp' \
>>>> --event close_write --format '%f' \
>>>> /var/www/htdocs/contracts/**contracts/$DIR | while read FILE ;
>>>> do
>>>> {
>>>> echo "To: $EMAILTO"
>>>> echo "From: MONITOR ROBOT <DO-NOT-REPLY at somewhere.com>"
>>>> echo "Subject: Alert - $DIR"
>>>> echo " "
>>>> echo "A new file has been detected in $DIR"
>>>> echo ""
>>>> echo "The New File is named:"
>>>> echo " "
>>>> echo $FILE
>>>> } 2>&1 | /usr/bin/sendmail -t
>>>> done
>>>> 
>>>> Thanks!
>>>> 
>>>> Mr. B-o-B
>>>> ______________________________**_________________
>>>> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
>>>> tclug-list at mn-linux.org
>>>> http://mailman.mn-linux.org/**mailman/listinfo/tclug-list<http://mailman.mn-linux.org/mailman/listinfo/tclug-list>
>>>> 
>>>> 
>>> 
>> _______________________________________________
>> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
>> tclug-list at mn-linux.org
>> http://mailman.mn-linux.org/mailman/listinfo/tclug-list
>> 
> _______________________________________________
> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
> tclug-list at mn-linux.org
> http://mailman.mn-linux.org/mailman/listinfo/tclug-list
>