aboutsummaryrefslogtreecommitdiff
path: root/s2s-inotify.sh.example
diff options
context:
space:
mode:
Diffstat (limited to 's2s-inotify.sh.example')
-rwxr-xr-xs2s-inotify.sh.example43
1 files changed, 43 insertions, 0 deletions
diff --git a/s2s-inotify.sh.example b/s2s-inotify.sh.example
new file mode 100755
index 0000000..a1fd4e3
--- /dev/null
+++ b/s2s-inotify.sh.example
@@ -0,0 +1,43 @@
+#/usr/bin/sh
+# Startdate: 2021-02-12 10:00
+# Dependencies:
+# centos8-req: inotify-tools
+# Rewritten to handle across nfs because the reference implementation runs this monitor on a nfs client and not the server
+
+# suggested INDIR: /mnt/public/Images/username1-photos/website
+test -z "${INDIR}" && export INDIR="${1}"
+test -z "${INDIR}" && { echo "Please provide directory name as INDIR or parameter 1. Aborted." 1>&2 ; exit 1 ; }
+
+# CONFIGURE THESE
+WATCHFILE="${INDIR}"/updatenow.txt
+STOPFILE="${INDIR}"/stop.txt
+COMMAND1="ssh server1 \"sudo find ${INDIR} ! -type l \( ! -user user1 -o ! -group usergroup1 \) -exec chown user1.usergroup1 {} \; ; sudo find ${INDIR} ! -type l \( ! -perm /g+r -o ! -perm /g+w \) -exec chmod g+rwX {} \; ;\""
+COMMAND2="/mnt/public/Support/Programs/shortcuts/s2s.py --indir ${INDIR} --apply --debug 8 --delete"
+LOOPTIMER=5
+
+# the looptimer is so that the program will pause every once in a while to check for the stop file
+
+clean_s2s_inotify() {
+ rm -f "${STOPFILE}" 1>/dev/null 2>&1
+ :
+}
+
+trap '__ec=$? ; printf " caused s2s-inotify to stop.\n" ; clean_s2s_inotify ; trap "" 2 ; exit ${__ec} ;' 2 # catch CTRL+C
+
+rm -f "${STOPFILE}"
+while test ! -f "${STOPFILE}" ; do
+ oldstat="${stat}"
+ count="$( inotifywait -e modify -t "${LOOPTIMER}" "${WATCHFILE}" 1>/dev/null 2>&1 ; echo $? )"
+ stat="$( stat -c "%Y" "${WATCHFILE}" )"
+ #echo "count=${count}"
+ #if test ${count} -gt 0 2>/dev/null ;
+ if test "${count}" = "0" || test "${oldstat}" != "${stat}" 2>/dev/null ;
+ then
+ eval ${COMMAND1}
+ eval ${COMMAND2}
+ fi
+done
+trap '' 2
+
+echo "Stopped because of stop.txt"
+clean_s2s_inotify
bgstack15