Linux和Unix下的磁盘空间, 也是关注的一个对象, 用Perl包装一下df命令就可以方便地取得所有挂载的卷的空间信息, 然后在Perl中进行更高级的判断和处理.

sub getDiskFreeSpace
{
  my ($diskinfo) = @_;
  my @dflines=();

  @$diskinfo = ();
  open(CMDINPUT, “df -Pm | grep / | grep -v proc | grep -v none |”);
  @dflines = <CMDINPUT>;
  close(CMDINPUT);

  foreach my $line (@dflines)
  {
      chomp($line);
      $line =~ s/ +/,/g;
      $line =~ s/\%//g;
      my ($filesystem, $totalmb, $usedmb, $freemb , $pct, $mount) = split “,”, $line;
      my (%vol);
      $vol{FileSystem} = $filesystem;
      $vol{TotalSize} = $totalmb;
      $vol{UsedSize} = $usedmb;
      $vol{FreeSize} = $freemb;
      $vol{FreePct} = 100 – $pct;
      $vol{Mount} = $mount;
      @$diskinfo = (@$diskinfo, \%vol);
  }
}

    不要忘了监控inode的利用情况!