This is just a script that I wrote to email me when a file shows up or when that same file disappears. I figure it might be handy to do the same thing somewhere else someday so you or I can just copy and paste as the need arises. #!/bin/bash startingdir="/home/yourhomedir" cd $startingdir thisfilenameflagfile="/tmp/$(basename $0).thisfilename_exists" logfile="/tmp/$(basename $0).log" echo -e "LOGFILE: $logfile\nthisfilename Flag File: $thisfilenameflagfile" function rotatelog() { touch $logfile #how old is the current log file? maybe it's time to start a new one. Are there any old ones to delete? if [ $(wc -l $logfile|awk '{print $1}') -gt 2000 ];then if [ -f "${logfile}.9.gz" ];then rm -v "${logfile}.9.gz";fi ct=9;while [ $ct -gt 1 ];do let ct-- if [ -f "${logfile}.${ct}.gz" ];then mv -v "${logfile}.${ct}.gz" "${logfile}.$(( $ct + 1 )).gz" fi done fi } rotatelog function sendemailthisfileremoved() { echo "$(date) $0 - emailed pickup was done" | tee -a $logfile cat <<EOF | /usr/sbin/sendmail -t To: myemail@mydomain.com Subject: Alert: File thisfilename removed From: do-not-reply@mydomain.com The file thisfilename has been removed. Parent: $PPID $(ps -ocommand $PPID|grep -v 'COMMAND') Email by: $0 at $(date) user:$(whoami) on $(hostname) EOF } function sendemailthisfilenameready() { echo "$(date) $0 - emailed file is ready for pickup" | tee -a $logfile cat <<EOF | /usr/sbin/sendmail -t To: myemail@mydomain.com Subject: Alert: File thisfilename is present From: do-not-reply@mydomain.com The file thisfilename is present. Parent: $PPID $(ps -ocommand $PPID|grep -v 'COMMAND') Email by: $0 at $(date) user:$(whoami) on $(hostname) EOF } if [ ! -f "thisfilename" ] && [ -f "$thisfilenameflagfile" ];then echo "File absent but flag exists, removing flag and emailing." sendemailthisfileremoved /bin/rm -vf "$thisfilenameflagfile" else echo "File absent despite flag? Nope." fi if [ -f "thisfilename" ] && [ ! -f "$thisfilenameflagfile" ];then echo "File exists but flag absent, adding flag and emailing." touch "$thisfilenameflagfile" sendemailthisfilenameready else echo "File exists but missing flag? Nope." fi |
Articles > Homemade Software >