{"id":2442,"date":"2017-12-08T10:40:37","date_gmt":"2017-12-08T10:40:37","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/?p=2442"},"modified":"2025-02-01T23:08:06","modified_gmt":"2025-02-01T23:08:06","slug":"convert-df-h-output-to-html-table","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/convert-df-h-output-to-html-table\/","title":{"rendered":"Convert df -h output to html table"},"content":{"rendered":"<p><strong>rajeshkumar created the topic: convert df -h output to html table<\/strong><\/p>\n<p>Code shared on permonks by choroba.<\/p>\n<p><code>#!\/usr\/bin\/perl<br \/>\nuse warnings;<br \/>\nuse strict;<\/p>\n<p>use Text::Table;<br \/>\nuse constant CAPACITY => 3;<\/p>\n<p>my @lines = `df -hP`;<br \/>\nmy $header = shift @lines;<br \/>\n# Do not create two columns for \"Mounted\" and \"On\"<br \/>\n$header =~ s\/Mounted \/Mounted_\/;<br \/>\nmy $table = Text::Table->new(split ' ', $header);<br \/>\n{<br \/>\n    no warnings 'numeric'; # Ignore % signs<br \/>\n    @lines = sort { $a->[CAPACITY] <=> $b->[CAPACITY] }<br \/>\n             map [split ' ', $_], @lines;<br \/>\n}<br \/>\n$table->load(@lines);<br \/>\nprint $table;<\/code><\/p>\n<p>Regards,<br \/>\nRajesh Kumar<br \/>\nTwitt me @<a href=\"http:\/\/twitter.com\/RajeshKumarIn\" target=\"_blank\" rel=\"noopener\"> twitter.com\/RajeshKumarIn<\/a><\/p>\n<p><strong>rajeshkumar replied the topic: Re: convert df -h output to html table<\/strong><\/p>\n<p>There is one i made it working as below;<\/p>\n<p><code>#############################################<br \/>\n    #!\/usr\/local\/bin\/perl<\/p>\n<p>    # Use either -h or -k flag or leave it blank for default (-k)<br \/>\n    # -h for human-readable size output<br \/>\n    # -k for 1k-block output<br \/>\n    $flag = \"-h\";<br \/>\n    @df = `df $flag`;<\/p>\n<p>    print \"Content-type: text\/htmln\\n\";<br \/>\n    print \"<\/p>\n<table border=2>\\n\";<br \/>\n    print \"<\/p>\n<tr>\\n\";<\/p>\n<p>    print \"<\/p>\n<td><b>Filesystem<\/b><\/td>\n<p>\\n\";<\/p>\n<p>    if ($flag eq \"-h\") {<br \/>\n        print \"<\/p>\n<td><b>Size<\/b><\/td>\n<p>\\n\";<br \/>\n    }<br \/>\n    else {<br \/>\n        print \"<\/p>\n<td><b>1k-blocks<\/b><\/td>\n<p>\\n\";<br \/>\n    }<\/p>\n<p>    print \"<\/p>\n<td><b>Used<\/b><\/td>\n<p>\\n\";<br \/>\n    print \"<\/p>\n<td><b>Avail<\/b><\/td>\n<p>\\n\";<br \/>\n    print \"<\/p>\n<td><b>Capacity<\/b><\/td>\n<p>\\n\";<br \/>\n    print \"<\/p>\n<td><b>Mounted on<\/b><\/td>\n<p>\\n\";<br \/>\n    print \"<\/tr>\n<p>\\n\";<\/p>\n<p>    foreach $line (@df) {<br \/>\n        next if ($line =~ \/Filesystem\/);<\/p>\n<p>        ($fsystem,$blocks,$used,$avail,$capacity,$mounted) = split(\/\\s+\/,$line);<\/p>\n<p>        print \"fsystem is $fsystem\\n\";<br \/>\n        print \"blocks is $blocks\\n\";<br \/>\n        print \"used is $used\\n\";<br \/>\n        print \"avail is $avail\\n\";<br \/>\n        print \"capacity is $capacity\\n\";<br \/>\n        print \"mounted is $mounted\\n\";<\/p>\n<p>    ($number,$sign) = split(\/%\/,$capacity);<br \/>\n    if ($number < 60) {\n        print \"\n\n<tr bgcolor=green>\\n\";<br \/>\n    }<br \/>\n    elsif (($number >= 60) && ($number < 90)) {\n        print \"\n\n<tr bgcolor=yellow>\\n\";<br \/>\n    }<br \/>\n    else {<br \/>\n        print \"<\/p>\n<tr bgcolor=red>\\n\";<br \/>\n    }<br \/>\n    #<br \/>\n    print \"<\/p>\n<td>$fsystem<\/td>\n<p>\\n\";<br \/>\n    print \"<\/p>\n<td>$blocks<\/td>\n<p>\\n\";<br \/>\n    print \"<\/p>\n<td>$used<\/td>\n<p>\\n\";<br \/>\n    print \"<\/p>\n<td>$avail<\/td>\n<p>\\n\";<br \/>\n    print \"<\/p>\n<td>$capacity<\/td>\n<p>\\n\";<br \/>\n    print \"<\/p>\n<td>$mounted<\/td>\n<p>\\n\";<br \/>\n    print \"<\/tr>\n<p>\\n\";<br \/>\n    }<\/p>\n<p>    print \"<\/table>\n<p>\\n\";<\/code><\/p>\n<p>Regards,<br \/>\nRajesh Kumar<br \/>\nTwitt me @ <a href=\"http:\/\/twitter.com\/RajeshKumarIn\" target=\"_blank\" rel=\"noopener\">twitter.com\/RajeshKumarIn<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>rajeshkumar created the topic: convert df -h output to html table Code shared on permonks by choroba. #!\/usr\/bin\/perl use warnings; use strict; use Text::Table; use constant CAPACITY => 3; my&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[14],"tags":[461],"class_list":["post-2442","post","type-post","status-publish","format-standard","hentry","category-perl","tag-df"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/2442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=2442"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/2442\/revisions"}],"predecessor-version":[{"id":2443,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/2442\/revisions\/2443"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=2442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=2442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=2442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}