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
# 8  
Old 03-20-2014
Sure Scott. But if you can help me out by making it comes as a table formatted as requested it would be really appreciatable. I will post the output of your suggestion in my next reply. Thanks a lot
# 9  
Old 03-20-2014
It should't be that difficult, it's just a question of adding the right tags in the right places.

i.e.
Code:
df -g | awk '
  BEGIN { print "<table>" }
  NR > 1 {
    print "<tr>"
    for( i = 1; i <= NF; i++ )
      print "<td>" $i "</td>"
    print "</tr>"
  }
  END { print "</table>" }
'

If you don't want an HTML table, but just the data tabulated, use the <pre> tags, and then format the line using printf.
Code:
df -g | awk '
  BEGIN { print "<pre>" }
  NR > 1 { 
   printf( "%-20s %8s %8s ... (as you like)\n", "$1", "$2", "$3", ... )
  }
  END { print "</pre>" }
'

# 10  
Old 03-21-2014
This might get you started:

Code:
printf "<html>\n<body>\n"
df -g | 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"


Last edited by Chubler_XL; 03-21-2014 at 01:26 AM..
# 11  
Old 03-21-2014
Some error occured

Hi Scott and Chubler ,

When i executed the script the result came like
Code:
table> <tr> <td>/dev/hd4</td> <td>0.75</td> <td>0.56</td> <td>26%</td> <td>9702</td> <td>7%</td> <td>/</td> </tr> <tr> <td>/dev/hd2</td> <td>5.50</td> <td>0.34</td> <td>94%</td> <td>94242</td> <td>42%</td> <td>/usr</td>

This is good but when i gave the resulted thing in the Ultraedit notepad to check the HTML table it displayed an error message.

I really appreciate your help did so far and still a small distance to finish off our lap.

You made me to result the script in a shape at what i expected, but there is some minor error which am unable to figure it out.

Doubts in my mind as am new to this HTML stuff -
1)Chubler_XL -> your script is what i expected and it showed an error when i tried to open it in a HTML document. Doubt is

at which place on that script i have to redirect the output to a text format as i need to FTP (17 server files) to a main one and have to bring it to the email body.

if you help me out to redirect this script to a text or word document , i can open it using CAT command and bring in the mailbody as final report.

Help would be helpful for me as well as others too. Thanks a lot Scott/Cubler_x to make the result gets completed 85%. Still 15% only , please help me
# 12  
Old 03-21-2014
Quote:
Originally Posted by Kalaihari
This is good but when i gave the resulted thing in the Ultraedit notepad to check the HTML table it displayed an error message.
Displayed what error message?

Moderator's Comments:
Mod Comment Posting that something "gave an error message" without explanation does not help you or anyone. Please post the exact error or malfunction you received. Do not paraphrase errors, or post the text as links, images, or attachments if you can avoid it.
# 13  
Old 03-21-2014
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" > hari.html
cat hari.html | mailx - s " Disk space report  " hari1189@gmail.com

The result came in the email like

Code:
<html>
<body>
<table border="1" cellpadding="4" style="border-collapse: collapse">
<tr>
<td>/dev/hd9var</td>
<td>20.75</td>
<td>4.42</td>
<td bgcolor=#FF6633>79%</td>
<td>22399</td>
<td>3%</td>
<td>/var</td>
</tr>
<tr>
<td>/dev/hd1</td>
<td>1.50</td>
<td>0.30</td>
<td bgcolor=#FF3366>81%</td>
<td>7252</td>
<td>10%</td>
<td>/home</td>
</tr>
<tr>
<td>/dev/itmlv</td>
<td>2.00</td>
<td>0.58</td>
<td bgcolor=#FF6633>71%</td>
<td>8400</td>
<td>6%</td>
<td>/opt/IBM/ITM</td>
</tr>
<tr>
<td>/dev/productlv</td>
<td>25.00</td>
<td>1.39</td>
<td bgcolor=#FF3366>95%</td>
<td>118645</td>
<td>24%</td>
<td>/u01/app/oracle/product</td>
</tr>
<tr>
<td>/dev/oradatalv</td>
<td>10.00</td>
<td>2.28</td>
<td bgcolor=#FF6633>78%</td>
<td>17</td>
<td>1%</td>
<td>/u02/oradata</td>
</tr>
<tr>
<td>/dev/fsmlv</td>
<td>0.38</td>
<td>0.00</td>
<td bgcolor=#FF3366>100%</td>
<td>454</td>
<td>28%</td>
<td>/opt/FileNet/SysMon</td>
</tr>
</table>
</body>
</html>

Now the happy news is it came so perfectly when i open the HTML code by giving it in a text document outside of my AIX box and execute it by saving it in .html format. When i gave like that the result of that HTML is as attached.

We have to redirect the result to a text or word document and we have to FTP it . Once we redirect it to a document i will do the rest in all the 17 systems and collate it in a single document and mail it . Thanks in advance
# 14  
Old 03-22-2014
Hi.

This is mostly a supplement to the post from wisecracker, and a little about tables, and conversions.

Let us suppose that you have a TAB-separated file:
Code:
$ cat data2
/dev/hd9var	20.75	4.47	79%	22378	3%	/var
/dev/itmlv	2.00	0.58	71%	8400	6%	/opt/IBM/ITM
/dev/oradatalv	10.00	2.28	88%	17	1%	/u02/oradata

then one can use an astoundingly short perl code to place this into an ASCII table like so:
Code:
$ cat f1
+----------------+-------+------+-----+-------+----+--------------+
| /dev/hd9var    | 20.75 | 4.47 | 79% | 22378 | 3% | /var         |
| /dev/itmlv     |  2.00 | 0.58 | 71% |  8400 | 6% | /opt/IBM/ITM |
| /dev/oradatalv | 10.00 | 2.28 | 88% |    17 | 1% | /u02/oradata |
'----------------+-------+------+-----+-------+----+--------------'

If you arrange for colors to be added for teminal codes, you can translate that, in turn, to bbcode:
Code:
$ cat f2
+----------------+-------+------+-----+-------+----+--------------+
| /dev/hd9var    | 20.75 | 4.47 | 79% | 22378 | 3% | /var         |
| /dev/itmlv     |  2.00 | 0.58 | 71% |  8400 | 6% | /opt/IBM/ITM |
| /dev/oradatalv | 10.00 | 2.28 | 88% |    17 | 1% | /u02/oradata |
'----------------+-------+------+-----+-------+----+--------------'

And you can also translate into HTML as noted in the attachment.

The table-creation is done with this:
Code:
#!/usr/bin/env perl

# @(#) p1	Demonstrate basic text table.

use Text::ASCIITable;

$t = Text::ASCIITable->new();
# $t->setCols( "AtomicNumber", "Symbol", "Name" );
$t->setCols( "c1", "c2", "c3", "c4", "c5", "c6", "c7" );
$t->setOptions({ hide_HeadRow => 1, hide_FirstLine => 1 });


while (<>) {
  @a = split;
  $t->addRow(@a);
}
print $t;

exit(0);

The perl module ASCIITable was available in repositories for Debian, Ubuntu, Fedora, and CentOS, as well as cpan.

And the conversions from terminal codes are done with:
Code:
NAME
       Ansifilter - ANSI escape code processor and converter

SYNOPSIS
       ansifilter [d:i:F:o:s:e:fhptvHRT] [-i input file] [-o output file]
       [--text] [--html] [--latex] [--tex] [--rtf] [input files]

DESCRIPTION
       Ansifilter is a small utility to handle text files containing ANSI
       terminal escape codes. The command sequences may be stripped or be
       interpreted to generate formatted output (HTML, LaTeX, TeX, RTF).

-- found at André Simon - Startseite -- a c++ code, nicely packaged with a Makefile for easy use. It compiled without trouble for me.

The upshot is that the HTML is probably not as nice as a hand-crafted table, but it seems like it's a lot easier, and the result is just a report anyway. If not for the desire to add color, the ASCII table could be easily sent as part of the email body.

( As an aside -- it looks like bbcode conventions do not allow background color settings. )

Best wishes ... cheers, drl
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