Wednesday, January 23, 2013
House Keeping Script
In this post , we will create a shell script to do the housekeeping activities in your application servers,database servers,web servers,cache servers,etc. …!!

You can use this script for almost all housekeeping activities like,
1] Server logs
2] Application Logs
3] Archived Logs
4] Archived Deployments
and much more ….
Pre-requisites:
To do the housekeeping activity we need the following property file.
Save this in a property file and save name it as cleanup_folders.properties.
Core Part of Script:
The above script requires one input from user as a command line argument, that is the number of days old logs to keep.For example, if you want to keep only logs and deployed archives for the last one month , then pass 30 as an argument like following.
To keep one month old logs and archives,
./clean_up_activity.sh 30
To keep 45 days old logs and archives,
./clean_up_activity.sh 45
Additionally this script also prepares a short report about ,
1] File System size before cleanup
2] File System size after cleanup
3] Number of deleted files under each directory
4] And finally the list of deleted files
I hope that this script made some of the administrators life easier.If you have better housekeeping script please share it with us, we are eager to know
You can use this script for almost all housekeeping activities like,
1] Server logs
2] Application Logs
3] Archived Logs
4] Archived Deployments
and much more ….
Pre-requisites:
/optional/Oracle/Middleware/domains/base_domain/servers/Ms1/logs/ | log* /optional/Oracle/Middleware/domains/base_domain/servers/Ms2/logs/ | log* /optional/Oracle/Middleware/domains/base_domain/servers/Ms3/logs/ | log* /optional/Oracle/Middleware/deployments | gzWe need to mention the list of locations(directory path) and extensions(.out,.log) which requires frequent cleanup at regular interval in a property file.
To do the housekeeping activity we need the following property file.
Save this in a property file and save name it as cleanup_folders.properties.
Core Part of Script:
#Program Name:HouseKeeping_Activity.sh
#A script that performs HouseKeeping activities
CLEAN_UP_PROPERTY_FILE="cleanup_folders.properties"
mount_path="/optional"
number_of_days_old=$1
bold=`tput bold`
PreClean_Event()
{
rm cleanup_task.csv
}
Get_FileSystemSize_BeforeCleanup()
{
fs=`df -h|grep $mount_path`
echo -e "\nFile System Size Before Cleanup:-" >> before.txt
echo $fs >> before.txt
}
Get_FileSystemSize_AfterCleanup()
{
fs=`df -h|grep $mount_path `
echo -e "\n File System Size After Cleanup:-" >> after.txt
echo $fs >> after.txt
}
Read_Property_File()
{
while read line
do
path_location=`echo $line | awk '{print $1}'`
file_format=`echo $line | awk '{print $3}'`
Find_Old_Files
done < $CLEAN_UP_PROPERTY_FILE
}
Find_Old_Files()
{
echo -e "\033[32mCleaning up the older files in Progress!!"
echo -e "\033[33mPath Location:$path_location"
echo -e "\033[34mFile Format:$file_format"
find $path_location\/*.$file_format -mtime +$number_of_days_old >> files.txt
total_no_of_files=`find $path_location/*.$file_format -mtime +$number_of_days_old | wc -l`
echo -e "$path_location \t $total_no_of_files" >> files_count.txt
find $path_location\/*.$file_format -mtime +$number_of_days_old| xargs rm
}
HouseKeeping_Report()
{
echo -e "\n CleanUp Task Document!!" >> report.txt
cat before.txt >> report.txt
echo -e "\n" >> report.txt
cat after.txt >> report.txt
echo -e "\n" >> report.txt
echo -e "\n Path Location" "\t
| Total No of files deleted under each category" >> report.txt
cat files_count.txt >> report.txt
echo -e "\n" >> report.txt
echo -e "\n List of Files that Deleted:" >> report.txt
cat files.txt >> report.txt
}
PostClean_Event()
{
echo "Cleaning unnecessary Files!!"
rm files.txt
rm before.txt after.txt
rm files_count.txt
}
Help_Function()
{
echo "Enter the number of days as input!!"
echo "Usage:./clean_up_activity.sh 30"
}
#Main Function Begins Here
if [ $# -eq 1 ]
then
PreClean_Event
Get_FileSystemSize_BeforeCleanup
Read_Property_File
Get_FileSystemSize_AfterCleanup
HouseKeeping_Report
PostClean_Event
else
Help_Function
fi
The above script requires one input from user as a command line argument, that is the number of days old logs to keep.For example, if you want to keep only logs and deployed archives for the last one month , then pass 30 as an argument like following.
To keep one month old logs and archives,
./clean_up_activity.sh 30
To keep 45 days old logs and archives,
./clean_up_activity.sh 45
Additionally this script also prepares a short report about ,
1] File System size before cleanup
2] File System size after cleanup
3] Number of deleted files under each directory
4] And finally the list of deleted files
I hope that this script made some of the administrators life easier.If you have better housekeeping script please share it with us, we are eager to know
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment