Hello All,
Many times we have a requirement to automate few of the tasks, and one of the important task is to delete old log files from log destination.
We usually get the conditions where we have to delete the log from particular directory when it reaches to some thresh hold value.
Now a day the requirement of automation is highly increased where we are seeing most of the day to day tasks are getting automated using different scripting languages.
Its always a good idea to automate your daily tasks which will save your working hours and will increase your productivity.
Most of the time log destination gets full and due to which we face other issues like application down or particular service stop working.
And manual deleting of log is hectic process so below script will help you to delete your log data when it meets your condition, and also it will trigger mail to recipient after deletion of logs.
You can schedule this script in your crontab according to your feasible time to run it.
Below script will help you in getting disk usage alert. it will also delete the particular directory log on given condition.
#!/bin/bash
# Author: Azam Khan
# Description:This script is used to delete audit logs files in
/var/log/audit/
#
# Get Script's path
SDIR="$(cd $(dirname $0) && pwd)"
# Get Script's name
SNAME="$(basename $0)"
# Includes
. "$SDIR/$SNAME.props"
# Get Date
DATE=`date "+%Y-%m-%d"`
# Get Hostname
host=`hostname`
# Get the Capacity of /var/log/audit/
Capacity=`df -P /var/log/audit/ | awk '{
gsub("%",""); capacity = $5 }; END { print capacity }'`
echo "capacity:" $Capacity
if [ $Capacity -gt 3 ]
then
rm -rf /var/log/audit/audit.log.*
touch file.txt
df -h|grep -i /dev/mapper/rootvg-varlv > /user/home/raw_disk_usage.xls
#Filter the data and arrange in order
#cat /user/home/raw_disk_usage.txt | tr -s "\n" ":" | sed 's/hcegchdp/"hcegchdp/g' | tr -s '"' '\n' | sort -k 1 | column -t | sort -k 5 | awk 'NF{NF-=1};1' | sed -e "s/://g" | grep -v " Minion did not return. " > /root/scripts/Final_disk_usage.txt
awk ' BEGIN {
#FS =","
print "MIME-Version: 1.0"
print "Content-Type: text/html"
#print "Subject: Notification OS Disk Usgae "
#print "From: Development_OSDiskUsage@xyz.com"
#print "To: xyz@abc.com"
print "<HTML><BODY><H4>Hi
Team,<BR/><SPAN style='color:red'>The OS disk usage after
successfull deletion of /var/log/audit/ files, below are the
details.</SPAN></H4><TABLE border=1 cellspacing=0 cellpadding=3
bgcolor='#6d8dc2'>"
print "<TR>"
print "<TH>Hostname</TH>";
print "<TH>File system</TH>";
print "<TH>Configured_Capacity(GB)</TH>";
print "<TH>Capacity_Used(GB)</TH>";
print "<TH>Capacity_Available(%)</TH>";
print "<TH>Used(%)</TD>";
print "</TR>"
}
{
print "<TR>"
print "<TD
bgcolor='#ffffff'>"$host"</TD>";
print "<TD
bgcolor='#ffffff'>""/var/log/audit/""</TD>";
print "<TD
bgcolor='#ffffff'>"150"</TD>";
print "<TD bgcolor='#ffffff'>""a""</TD>";
print "<TD
bgcolor='#ffffff'>""b""</TD>";
print "<TD
bgcolor='#ffffff'>""c""</TD>";
print "</TR>"
}
END {
print "</TABLE><BR/><H4>Regards,<BR/>Your
team name.</H4></BODY></HTML>"
} ' file.txt > /user/home/file.html
#| /usr/sbin/sendmail abc@xyz.com
mailx -v -r $From -s "Development | EU Region | OS Disk Usgae | IP | VM Name" -S smtp="smtp-secure..com:25" $Dlist < /user/home/file.html
fi
exit 0
Please let me know if you face any
issue while adding node. I will try my best to help you.
Thank you !!!
Other Topic: Top Linux Commands | How to create a Azure VM using Snapshot | Git Commands | Install Kubernetes on Ubuntu
Thanks for sharing such useful script s
ReplyDeleteAwesome Script Azam Bhai
ReplyDeletethank you !
ReplyDeleteHelpful Azam bhai.
ReplyDeleteKudos to you
We are so fortunate to have an innovator like you Azam. You set a high bar with this one.
ReplyDeleteThis showcases you are a role model and leader !!
Thank You :-)
DeleteUseful script...
ReplyDelete