BASH script to Email list of “new” files found
This is a quick-and-dirty script that I made to solve a real world scenario. I had to find a way to notify a data integration group of any new files that an outside vendor had sent up to our secure FTP SUSE Linux server. These were batched up into many, many files, all starting with the same few characters. This made it fairly easy to add a wildcard search, but the other parts deal with the fact that only NEW files needed to be identified, not any existing files that were already processed internally by the data integration group.
#!/bin/bash OLD=/root/filecheck/old.log NEW=/root/filecheck/new.log DIFF=/root/filecheck/diff.log RCPT=user@user.com # write an "old" file listing if first time run if [ -f $OLD ]; then ls -la /path/to/filetype/filetype* | awk '{print $9}' > $OLD fi # take a snapshot of the directory now, possibly capturing new files ls -la /path/to/filetype/filetype* | awk '{print $9}' > $NEW diff "$OLD" "$NEW" >> "$DIFF" # new file listing now becomes "old" for next run cat $NEW > $OLD # if new files are found, log and send out a message if [ -s $DIFF ]; then cat <<EOF | /usr/sbin/sendmail -t To: $RCPT From: sftp@sftp-server.company.net Subject: New Files Found `cat $DIFF` . EOF fi