Convert df -h output to html table

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 @lines = df -hP;
my $header = shift @lines;
# Do not create two columns for "Mounted" and "On"
$header =~ s/Mounted /Mounted_/;
my $table = Text::Table->new(split ' ', $header);
{
no warnings 'numeric'; # Ignore % signs
@lines = sort { $a->[CAPACITY] <=> $b->[CAPACITY] }
map [split ' ', $_], @lines;
}
$table->load(@lines);
print $table;

Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

rajeshkumar replied the topic: Re: convert df -h output to html table

There is one i made it working as below;

#############################################
#!/usr/local/bin/perl

# Use either -h or -k flag or leave it blank for default (-k)
# -h for human-readable size output
# -k for 1k-block output
$flag = "-h";
@df = df $flag;

print "Content-type: text/htmln\n";
print "

\n";
print "

\n";

print "

\n";

if ($flag eq "-h") {
print "

\n";
}
else {
print "

\n";
}

print "

\n";
print "

\n";
print "

\n";
print "

\n";
print "

\n";

foreach $line (@df) {
next if ($line =~ /Filesystem/);

($fsystem,$blocks,$used,$avail,$capacity,$mounted) = split(/\s+/,$line);

print "fsystem is $fsystem\n";
print "blocks is $blocks\n";
print "used is $used\n";
print "avail is $avail\n";
print "capacity is $capacity\n";
print "mounted is $mounted\n";

($number,$sign) = split(/%/,$capacity);
if ($number < 60) { print "

\n";
}
elsif (($number >= 60) && ($number < 90)) { print " \n";
}
else {
print "

\n";
}
#
print "

\n";
print "

\n";
print "

\n";
print "

\n";
print "

\n";
print "

\n";
print "

\n";
}

print "

Filesystem Size 1k-blocks Used Avail Capacity Mounted on
$fsystem $blocks $used $avail $capacity $mounted

\n";

Regards,
Rajesh Kumar
Twitt me @ twitter.com/RajeshKumarIn

Rajesh Kumar
Total Page Visits: 200 - Today Page Visits: 2