]> code.delx.au - mediapc-tools/commitdiff
monitor-dir: track changes in a directory
authorJames Bunton <jamesbunton@delx.net.au>
Thu, 11 Oct 2012 10:46:47 +0000 (21:46 +1100)
committerJames Bunton <jamesbunton@delx.net.au>
Thu, 11 Oct 2012 10:46:47 +0000 (21:46 +1100)
monitor-dir [new file with mode: 0755]

diff --git a/monitor-dir b/monitor-dir
new file mode 100755 (executable)
index 0000000..6f1c940
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/bash -e
+
+# Use with crontab entry like:
+#   */5 *   *   *   *     $HOME/bin/monitor_dir /path/to/something
+
+if [ -z "$1" ]; then
+       echo "Usage $0 dir [monitor_file]"
+       exit 1
+fi
+mon="$1/${2:-.monitor_dir}"
+mon_tmp="${mon}_tmp"
+
+ls -R "$1" > "$mon_tmp"
+if [ -r "$mon" ] && ! cmp -s "$mon" "$mon_tmp" && [ -n "$(ls "$1")" ]; then
+       cat "$mon_tmp"
+fi
+mv "$mon_tmp" "$mon"
+