&Header::openbox('100%', 'center', $Lang::tr{'memory'});
print "<table width='95%' cellspacing='5'>";
- my $ram=0;
my $size=0;
my $used=0;
my $free=0;
my $shared=0;
my $buffers=0;
my $cached=0;
+ my $available=0;
- open(FREE,'/usr/bin/free |');
- while(<FREE>){
- if ($_ =~ m/^\s+total\s+used\s+free\s+shared\s+buffers\s+cached$/ ){
+ # output format: kibibytes, wide mode (buffers and cache in two columns)
+ open(my $cmd_fh, "-|", '/usr/bin/free -k -w') or die $!;
+ while(<$cmd_fh>){
+ if ($_ =~ m/^\s+total\s+used\s+free\s+shared\s+buffers\s+cache\s+available$/ ){
print <<END
<tr>
<td align='center'> </td>
END
;
}else{
- if ($_ =~ m/^Mem:\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)$/){
- ($ram,$size,$used,$free,$shared,$buffers,$cached) = ($1,$1,$2,$3,$4,$5,$6);
+ if ($_ =~ m/^Mem:\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)$/){
+ ($size,$used,$free,$shared,$buffers,$cached,$available) = ($1,$2,$3,$4,$5,$6,$7);
($percent = ($used/$size)*100) =~ s/^(\d+)(\.\d+)?$/$1%/;
print <<END
<tr>
<td class='boldbase'><b>$Lang::tr{'ram'}</b></td>
-<td align='center'>$size KB</td>
END
;
}elsif($_ =~ m/^Swap:\s+(\d+)\s+(\d+)\s+(\d+)$/){
print <<END
<tr>
<td class='boldbase'><b>$Lang::tr{'swap'}</b></td>
-<td align='center'>$size KB</td>
END
;
- }elsif($ram and $_ =~ m/^-\/\+ buffers\/cache:\s+(\d+)\s+(\d+)$/ ){
- ($used,$free) = ($1,$2);
- ($percent = ($used/$ram)*100) =~ s/^(\d+)(\.\d+)?$/$1%/;
- print "<tr><td colspan='2' class='boldbase'><b>$Lang::tr{'excluding buffers and cache'}</b></td>";
}
print <<END
-<td align='center'>$used KB</td>
-<td align='center'>$free KB</td>
+<td align='center'>$size KiB</td>
+<td align='center'>$used KiB</td>
+<td align='center'>$free KiB</td>
<td>
END
;
;
}
}
- close FREE;
+ close($cmd_fh);
print <<END
-<tr><td class='boldbase' colspan='2'><br /></td></tr>
-<tr><td class='boldbase'><b>$Lang::tr{'shared'}</b></td><td align='center'>$shared KB</td></tr>
-<tr><td class='boldbase'><b>$Lang::tr{'buffers'}</b></td><td align='center'>$buffers KB</td></tr>
-<tr><td class='boldbase'><b>$Lang::tr{'cached'}</b></td><td align='center'>$cached KB</td></tr>
+<tr><td colspan='6'><br /></td></tr>
+<tr><td class='boldbase'><b>$Lang::tr{'shared'}</b></td><td align='center'>$shared KiB</td></tr>
+<tr><td class='boldbase'><b>$Lang::tr{'buffers'}</b></td><td align='center'>$buffers KiB</td></tr>
+<tr><td class='boldbase'><b>$Lang::tr{'cached'}</b></td><td align='center'>$cached KiB</td></tr>
+<tr><td class='boldbase'><b>$Lang::tr{'available'}</b></td><td align='center'>$available KiB</td></tr>
</table>
END
;