TapeTrack Documentation

Because there is more to tape management than you ever realized

User Tools

Site Tools


technote:syncwatcher

This is an old revision of the document!


Running Syncs with inotify

#!/bin/bash

function control_c {
   logger -s -t TapeTrackSyncWatcher Request to end TapeTrack Sync Watcher recieved
   exit
};

set -e

trap control_c SIGINT
trap control_c SIGTERM

logger -s -t TapeTrackSyncWatcher Starting TapeTrack Sync Watcher

outfile=$(mktemp "${TMPDIR:-/tmp/}syncwatch.XXXXXXXXXXXX")

while true; do
   #
   # Wait on a change to the sftp directory
   #
   inotifywait -r -e close_write /var/sftp > $outfile 2> /dev/null

   #
   # A chance has been made so read the results into 3 variables (path, type, file)
   #
   read -r r1 r2 r3 < $outfile

   #
   # Delete the temp file
   #
   rm $outfile

   base=`cut -d'/' -f-4 <<< $r1`

   if grep -q "/upload/" <<< $r1 ; then
      logger -s -t TapeTrackSyncWatcher Launching Sync fpr file $r1$r3
      now=$(date +"%m_%d_%Y")
      syncfile=$r1$r3 TMSS10Sync -d $base/etc/default.ttidef > $base/reports/stdout-$now.txt 2> $base/reports/stderr-$now.txt &
   else
      logger -s -t TapeTrackSyncWatcher Skipping file update for file $r1$r3
   fi
done

exit

technote/syncwatcher.1555120980.txt.gz · Last modified: 2025/01/21 22:07 (external edit)