filewatcher
This commit is contained in:
38
filewatcher.sh
Executable file
38
filewatcher.sh
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Monitor file $1 for changes
|
||||
# Send an alert emai to $2 if file $1 changes
|
||||
# usage: filewatcher /var/log/messages your.name@domain.com
|
||||
#
|
||||
|
||||
if [ -z "$2" ]; then
|
||||
echo "Usage: filewatcher /var/log/messages your.name@domain.com"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#if a inotifywait for this file is already running
|
||||
if [ $(ps aux | grep inotifywait | grep -c "$1" ) -gt '0' ]; then
|
||||
echo "A process monitoring the file $1 is already running: $(ps aux | grep inotifywait | grep "$1" )";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
#if inotifywait exists
|
||||
type -P inotifywait &>/dev/null || { echo "Error: This script requires inotifywait(http://wiki.github.com/rvoicilas/inotify-tools/) .... apt-get install inotify-tools ... " >&2; exit 1; }
|
||||
|
||||
#if the file exists
|
||||
# if [ -f $1 ]; then
|
||||
|
||||
echo "Monitoring file $1 for changes - sending alerts to $2"
|
||||
|
||||
while inotifywait -e modify -e attrib -e move -e delete $1 -o /opt/filewatcher/audit.log; do
|
||||
sleep 1
|
||||
|
||||
# changes="$(tail -n5 $1)"
|
||||
|
||||
changes="$(cat /opt/filewatcher/audit.log)"
|
||||
echo "The following change occurred in the file $1 : $changes" | mail -s "Change in $1" $2
|
||||
rm /opt/filewatcher/audit.log
|
||||
touch /opt/filewatcher/audit.log
|
||||
done
|
||||
else
|
||||
echo "Error: File $1 not found"
|
||||
Reference in New Issue
Block a user