Skip to main content

Script To Monitor disk Usage


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

 

         

 

Thank you !! Example HTML page Pleaes provide your valuable feedback.

Comments

Post a Comment

Popular posts from this blog

Connect SparkThriftServer with Tableau/PowerBI

  Connect SparkThriftServer with Tableau/PowerBI REFERENCE : https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-apache-spark-use-bi-tools Use Power BI for Spark data visualization Note This section is applicable only for Spark 1.6 on HDInsight 3.4 and Spark 2.0 on HDInsight 3.5.   Once you have saved the data as a table, you can use Power BI to connect to the data and visualize it to create reports, dashboards, etc.   1.       Make sure you have access to Power BI. You can get a free preview subscription of Power BI from http://www.powerbi.com/ . 2.       Sign in to Power BI . 3.       From the bottom of the left pane, click Get Data . 4.       On the Get Data page, under Import or Connect to Data , for Databases , click Get . 5.       On the next screen, click Spark on Azure HDInsight and then click Connect . When prompted, enter th...

Docker In Details

  Course Contents:- 1. Overview of Docker 2. Difference between Virtualization & Containerization 3. Installation & Configuration of Docker Runtime on Linux & Windows 4. Practice on Docker commands 5. launch a Webserver in a container 6. Launch public & official images of application like Jenkins, Nginx, DB etc.. 7. Launch a base OS Container 8. How to save changes inside the container & create a fresh image(commit) 9. How to ship image & container from one hardware to another. 10. How to remove stop/rm multiple container/images 11. Docker Registry 12. Docker Networking       Check current docker network                  Docker Network Bridge                     Docker Network Weaving                  Launch our own Docker Cluster with our defined Network             ...

Roadmap to DevOps

    DevOps is nothing but the combination of process and philosophies which contains four basic component culture, collaboration, tools, and practices. In return, this gives a good automated system and infrastructure which helps an organisation to deliver a quality and reliable build. The beauty of this culture is it enables a quality for organizations to better serve their customers and compete more effectively in the market and also add some promised benefits which include confidence and trust, faster software releases, ability to solve critical issues quickly, and better manage unplanned work.   1. What are the tasks of a DevOps Engineer? Design, build, test and deploy scalable, distributed systems from development through production Manage the code repository(such as Git, SVN, BitBucket, etc.) including code merging and integrating, branching and maintenance and remote repository management Manage, configure and maintain infra...

Git

Git Git  has steadily risen from being just a preferred skill to a must-have skill in last few years. in this blog we will go through top 20 git commands that every devops uses daily. If you don't have a gitlab account. please follow below link to create it free.   https://gitlab.com/ before using git please install git on your linux machine using below command. yum install git -y Use below command to create ssh keyol ssh-keygen -t rsa Below are the git command which we will cover in this blog. ·          git config ·          git init ·          git clone ·          git add ·          git commit ·          git diff ·          git reset ·      ...

Azure VM Snapshot

  Create a VM from a VHD by using the Azure portal Create a snapshot and then create a disk from the snapshot. This strategy allows you to keep the original VHD as a fallback: 1.       From the  Azure portal , on the left menu, select  All services . 2.       In the  All services  search box, enter  disks  and then select  Disks  to display the list of available disks. 3.       Select the disk that you would like to use. The  Disk  page for that disk appears. 4.       From the menu at the top, select  Create snapshot . 5.       Enter a  Name  for the snapshot. 6.       Choose a  Resource group  for the snapshot. You can use either an existing resource group or create a new one. 7.       For  Account type , choose ei...