}
# Diskspace usage warning
-my @temp=();
-my $temp2=();
-my @df = `/bin/df -B M -P -x rootfs`;
+my @df = `/bin/df -B M -P -x tmpfs -x devtmpfs`;
foreach my $line (@df) {
+ # Skip headline.
next if $line =~ m/^Filesystem/;
- if ($line =~ m/root/ ) {
- $line =~ m/^.* (\d+)M.*$/;
- @temp = split(/ +/,$line);
- if ($1<5) {
- # available:plain value in MB, and not %used as 10% is too much to waste on small disk
- # and root size should not vary during time
- $warnmessage .= "<li>$Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$1M</b> !</li>";
- }
+
+ # Splitt processed line and assign some nice humand-readable values.
+ my($dev, $blocks_1k, $used, $available, $used_percent, $mpoint) = split(/\s+/, $line);
- } else {
- # $line =~ m/^.* (\d+)m.*$/;
- $line =~ m/^.* (\d+)\%.*$/;
- if ($1>90) {
- @temp = split(/ /,$line);
- $temp2=int(100-$1);
- $warnmessage .= "<li>$Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$temp2%</b> !</li>";
- }
+ # Check if more than 90% of disk is consumed.
+ if ($used_percent > 90) {
+ # Calculate remain free space.
+ my $free=int(100-$used_percent);
+
+ # Add a warning message.
+ $warnmessage .= "<li>$Lang::tr{'filesystem full'}: $dev <b>$Lang::tr{'free'}=$free%</b> !</li>";
}
}