Color encoding on the disk space script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Color encoding on the disk space script
# 15  
Old 03-23-2014
Try something like this

Code:
(
printf "To: hari1189@gmail.com\n"
printf "Subject:Disk Space Report\n"
printf "Content-Type: text/html\n"
printf "Content-Disposition: inline\n\n"
printf "<html>\n<body>\n"
df -g | awk 'NR>1&&($4+0)>70' | awk '
  BEGIN {print "<table border=\"1\" cellpadding=\"4\" style=\"border-collapse: collapse\">"}
  NR>1{
    print "<tr>"
    for( i = 1; i <= NF; i++ ) {
      printf "%s", "<td"
      if (i==4&&$i+0>80) printf " bgcolor=#FF3366"
      else if (i==4&&$i+0>70) printf " bgcolor=#FF6633"
      print ">" $i "</td>"
    }
    print "</tr>"
  }
  END { print "</table>" }'
printf "</body>\n</html>\n" ) | sendmail -t

# 16  
Old 03-24-2014
Hi Chubler X:L,

This will work for one server , but am planning to redirect the result to a .HTML format for all 17 servers which am planning to collate in a single email body and bring it as a resulting output. your code works for single server were i got the email . Thanks for that Smilie

Could you please help me out to redirect the below code to a .HTML format were i can use the CAT command to open it up in a email body by giving the below command line.

Code:
cat <servername>.html |mailx -s " Disk space result" hari1189@gmail.com

So that i can collect all <servername.html> in a single email body and send it to the users.

The happy news is we have reached 80% of what we expected. Jus a small redirection of .HTML format will help us to finish this thread . Thanks all in advance.

Cheers
Hari
Code:
printf "<html>\n<body>\n" df -g | awk 'NR>1&&($4+0)>70' | awk '   BEGIN {print "<table border=\"1\" cellpadding=\"4\" style=\"border-collapse: collapse\">"}   NR>1{     print "<tr>"     for( i = 1; i <= NF; i++ ) {       printf "%s", "<td"       if (i==4&&$i+0>80) printf " bgcolor=#FF3366"       else if (i==4&&$i+0>70) printf " bgcolor=#FF6633"       print ">" $i "</td>"     }     print "</tr>"   }   END { print "</table>" }' printf "</body>\n</html>\n"

# 17  
Old 03-24-2014
Firstly collect the required HTML for your tables on each server like this:

Code:
df -g | awk 'NR>1&&($4+0)>70' | awk '
  BEGIN {print "<table border=\"1\" cellpadding=\"4\" style=\"border-collapse: collapse\">"}
  NR>1{
    print "<tr>"
    for( i = 1; i <= NF; i++ ) {
      printf "%s", "<td"
      if (i==4&&$i+0>80) printf " bgcolor=#FF3366"
      else if (i==4&&$i+0>70) printf " bgcolor=#FF6633"
      print ">" $i "</td>"
    }
    print "</tr>"
  }
  END { print "</table>" }' > server1.html

The join them up for your email, with a empty paragraph between each like something like this:

Code:
(
printf "To: hari1189@gmail.com\n"
printf "Subject:Disk Space Report\n"
printf "Content-Type: text/html\n"
printf "Content-Disposition: inline\n\n"
printf "<html>\n<body>\n"
cat server1.html
printf "<p></p>\n"
cat server2.html
printf "<p></p>\n"
cat server3.html
...
cat serverN.html
printf "<p></p>\n"
printf "</body>\n</html>\n" ) | sendmail -t

This User Gave Thanks to Chubler_XL For This Post:
# 18  
Old 03-24-2014
Smilie THANKS A LOT !!! CHUBLER XL ..

YOUR CODE WORKED CHARMING !!

99% over now. I got the result but i jus want to add the server names in the table

Code:
df -g | awk 'NR>1&&($4+0)>70' | awk '   BEGIN {print "<table border=\"1\" cellpadding=\"4\" style=\"border-collapse: collapse\">"}   NR>1{
print "<tr>"
print "<td" printf "bgcolor=#gray" 
print ">" echo `hostname` "</td>"
print "</tr>"[/B]
 print "<tr>"     for( i = 1; i <= NF; i++ ) {       printf "%s", "<td"       if (i==4&&$i+0>80) printf " bgcolor=#FF3366"       else if (i==4&&$i+0>70) printf " bgcolor=#FF6633"       print ">" $i "</td>"     }     print "</tr>"   }   END { print "</table>" }' > server1.html

To bring the servername in the table , am i right with the RED colored area of the code. SO that i can split the tables with servernames and it will be easier.

Your help is highly commendable and thanks for the 99% completion . Thanks to all!!!

Cheers
Hari

Last edited by Scott; 03-24-2014 at 04:51 PM.. Reason: Formatting
# 19  
Old 03-24-2014
Best bet is to pass hostname in as an awk variable and prepend it to the line.
Note that used% field is now #5, as hostname pushes all the fields over by 1:

Code:
df -g | awk -H=$(hostname) '
  BEGIN {print "<table border=\"1\" cellpadding=\"4\" style=\"border-collapse: collapse\">"}
  NR>1{
    $0= H " " $0
    print "<tr>"
    for( i = 1; i <= NF; i++ ) {
      printf "%s", "<td"
      if (i==5&&$i+0>80) printf " bgcolor=#FF3366"
      else if (i==5&&$i+0>70) printf " bgcolor=#FF6633"
      print ">" $i "</td>"
    }
    print "</tr>"
  }
  END { print "</table>" }' > server1.html

# 20  
Old 03-24-2014
Am getting error message :

Code:
awk: Not a recognized flag: H
Usage: awk [-u] [-F Character][-v Variable=Value][-f File|Commands][Variable=Value|File ...]

Smilie

Last edited by Scott; 03-24-2014 at 04:52 PM.. Reason: Code tags
# 21  
Old 03-24-2014
Sorry, typo should have been -v H=$(hostname) '
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Disk space script

i have 3 servers and i am checking for the disk space of a specific mount-point, should not be more than 85 % considering example as below server1 mountpoint_1 has 70% diskutilization server2 mountpoint_1 has 80% diskutilization server3 mountpoint_1 has 7% diskutilization now when it... (6 Replies)
Discussion started by: abhaydas
6 Replies

2. Shell Programming and Scripting

I need help!! disk free space script

i want to write a shell script,when disk uses is 90% then automatically send a email to distribution list (group member)...... (1 Reply)
Discussion started by: sonu pandey
1 Replies

3. Solaris

Disk space being used up while running a script

We have a script which when run consumes the space of the disk from where it is being run. we have to kill this script every time to release space. why do this happen ? any work around please we are using solaris 10 P.S. : a part of the code will make some connection to the DB (1 Reply)
Discussion started by: chidori
1 Replies

4. Emergency UNIX and Linux Support

Disk space script output in color

I'm connecting to 15 servers in using ssh and storing disk space details of each server in a text file Finally , I'm emailing that text file at the particular id using mail -x . The report looks something like this. Filesystem size used avail capacity Mounted on /proc ... (30 Replies)
Discussion started by: ajaypatil_am
30 Replies

5. Shell Programming and Scripting

Disk Space Monitoring Script - OLD and NEW

It's the old thread "Disk Space Monitoring Script", modified for UNIX This is the new code: df -k | awk ' { if ( int($4) > 90) {subject = $1 " More than 90% disk usage. Used: " $4 email = "email@test.com" print subject cmd = "mailx -s \"" subject "\" " email cmd | getline... (4 Replies)
Discussion started by: dungureanu
4 Replies

6. Shell Programming and Scripting

Script for Disk space

:( Hi All, i have 4 linux server for which i want set up script to monitor the disk space ... here my problem is i want the output like graph... also it should reflect in monitor ...as non stop process.. can any one suggest me any way where i can implement the script? ... (3 Replies)
Discussion started by: Shahul
3 Replies

7. Shell Programming and Scripting

Please help - disk space check script

I have a disk space check script that uses an exceptions file, the only issue with the script is that it does not work with values higher than the FSMAX=85 value. I have a file system that is at 92% and it doesn't change, so I would like to add it to the exceptions file. The exceptions file format... (0 Replies)
Discussion started by: maddhadder71
0 Replies

8. Shell Programming and Scripting

Disk Space Monitoring Script

#!/bin/bash # Disk Space Monitoring for more than 95 % # and Sending Alerts by Mail if ; then `df -k |awk '$5 > 95 {print $1 " ----------- " $5}' |mailx -s "More than 95% disk usage in DEV" email@test.com'; else exit 0 fi I get the... (8 Replies)
Discussion started by: sriram003
8 Replies

9. Shell Programming and Scripting

Disk space script

Hi all, Can any one help me in making a disk space script in solaris 8/9 for instance i only want to get those partitions whose diskspace has exceed 70%. Any volunteer? Cheers! BR/asad (8 Replies)
Discussion started by: asadlone
8 Replies

10. Shell Programming and Scripting

Frustrating Disk space script

This my frustrating disk space script that is supposed to send me a email whenever the disk space reaches 90% but this has some problem that just would not work ..can anyone please tell me when im going wrong #!/bin/ksh sendemail=-1 space=`df -bhk /users/siebelserver |awk '{print$5}'` echo... (4 Replies)
Discussion started by: vivsiv
4 Replies
Login or Register to Ask a Question