Monitor Directory for Changes
Here’s a simple script that I setup for my development WSGI server to reload itself once changes in source code are detected:
#!/bin/bash
while true; do
A=`find $1 -printf '%t' | md5sum`;
sleep 1
B=`find $1 -printf '%t' | md5sum`;
if [ "$A" != "$B" ]; then
echo "Detected change, doing: $2"
eval $2
fi
done
It’s very simple (a poor-man’s replacement for inotify) and doesn’t do anything complicated. Usage ./monitor.sh application "my-reload-services.sh". You can filter out unwanted stuff like maybe *.swp files by referring to the man find pages.
What do you use to monitor for changes? How can the above script be improved?