initial commit
This commit is contained in:
135
chapter9/findlarge.ksh
Executable file
135
chapter9/findlarge.ksh
Executable file
@@ -0,0 +1,135 @@
|
||||
#!/usr/bin/ksh
|
||||
#
|
||||
# SCRIPT:findlarge.ksh
|
||||
#
|
||||
# AUTHOR: Randy Michael
|
||||
#
|
||||
# DATE: 11/30/2007
|
||||
#
|
||||
# REV: 1.0.A
|
||||
#
|
||||
# PURPOSE: This script is used to search for files which
|
||||
# are larger than $1 Meg. Bytes. The search starts at
|
||||
# the current directory that the user is in, `pwd`, and
|
||||
# includes files in and below the user's current directory.
|
||||
# The output is both displayed to the user and stored
|
||||
# in a file for later review.
|
||||
#
|
||||
# REVISION LIST:
|
||||
#
|
||||
#
|
||||
#
|
||||
# set -x # Uncomment to debug this script
|
||||
|
||||
|
||||
############################################
|
||||
|
||||
function usage
|
||||
{
|
||||
echo "\n***************************************"
|
||||
echo "\n\nUSAGE: findlarge.ksh [Number_Of_Meg_Bytes]"
|
||||
echo "\nEXAMPLE: filelarge.ksh 5"
|
||||
echo "\n\nWill Find Files Larger Than 5 Mb in, and Below, the
|
||||
Current Directory..."
|
||||
echo "\n\nEXITING...\n"
|
||||
echo "\n***************************************"
|
||||
exit
|
||||
}
|
||||
|
||||
############################################
|
||||
|
||||
function cleanup
|
||||
{
|
||||
echo "\n********************************************************"
|
||||
echo "\n\nEXITING ON A TRAPPED SIGNAL..."
|
||||
echo "\n\n********************************************************\n"
|
||||
exit
|
||||
}
|
||||
|
||||
############################################
|
||||
|
||||
# Set a trap to exit. REMEMBER - CANNOT TRAP ON kill -9 !!!!
|
||||
|
||||
trap 'cleanup' 1 2 3 15
|
||||
|
||||
############################################
|
||||
|
||||
# Check for the correct number of arguments and a number
|
||||
# Greater than zero
|
||||
|
||||
if [ $# -ne 1 ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
if [ $1 -lt 1 ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
############################################
|
||||
|
||||
# Define and initialize files and variables here...
|
||||
|
||||
THISHOST=`hostname` # Hostname of this machine
|
||||
|
||||
DATESTAMP=`date +"%h%d:%Y:%T"`
|
||||
|
||||
SEARCH_PATH=`pwd` # Top level directory to search
|
||||
|
||||
MEG_BYTES=$1 # Number of Mb for file size trigger
|
||||
|
||||
DATAFILE="/tmp/filesize_datafile.out" # Data storage file
|
||||
>$DATAFILE # Initialize to a null file
|
||||
|
||||
OUTFILE="/tmp/largefiles.out" # Output user file
|
||||
>$OUTFILE # Initialize to a null file
|
||||
|
||||
HOLDFILE="/tmp/temp_hold_file.out" # Temporary storage file
|
||||
>$HOLDFILE # Initialize to a null file
|
||||
|
||||
############################################
|
||||
|
||||
# Prepare the output user file
|
||||
|
||||
echo "\nSearching for Files Larger Than ${MEG_BYTES}Mb starting in:"
|
||||
echo "\n==> $SEARCH_PATH"
|
||||
echo "\nPlease Standby for the Search Results..."
|
||||
echo "\nLarge Files Search Results:" >> $OUTFILE
|
||||
echo "\nHostname of Machine: $THISHOST" >> $OUTFILE
|
||||
echo "\nTop Level Directory of Search:" >> $OUTFILE
|
||||
echo "==> $SEARCH_PATH" >> $OUTFILE
|
||||
echo "\nDate/Time of Search: `date`" >> $OUTFILE
|
||||
echo "\n\nSearch Results Sorted by Time:" >> $OUTFILE
|
||||
|
||||
############################################
|
||||
|
||||
# Search for files > $MEG_BYTES starting at the $SEARCH_PATH
|
||||
|
||||
find $SEARCH_PATH -type f -size +${MEG_BYTES}000000c \
|
||||
-print > $HOLDFILE
|
||||
|
||||
# How many files were found?
|
||||
|
||||
if [ -s $HOLDFILE ]
|
||||
then
|
||||
NUMBER_OF_FILES=`cat $HOLDFILE | wc -l`
|
||||
|
||||
echo "\nNumber of Files Found: ==> $NUMBER_OF_FILES\n" >> $OUTFILE
|
||||
|
||||
# Append to the end of the Output File...
|
||||
|
||||
ls -lt `cat $HOLDFILE` >> $OUTFILE
|
||||
|
||||
# Display the Time Sorted Output File...
|
||||
|
||||
more $OUTFILE
|
||||
|
||||
echo "\nThese Search Results are Stored in ==> $OUTFILE"
|
||||
echo "\nSearch Complete...EXITING...\n\n\n"
|
||||
else
|
||||
cat $OUTFILE
|
||||
echo "\nNo Files were Found in the Search Path that"
|
||||
echo "are Larger than ${MEG_BYTES}Mb\n"
|
||||
echo "\nEXITING...\n\n"
|
||||
fi
|
||||
Reference in New Issue
Block a user