Search code examples
linuxperldiskspace

Get mounted disk space on Temp in Linux machine


I am new to perl world. I written one perl script for calculating free disk space. But whenever output generates, it gives me different number than what actually shows using df -h command.

So my requirement is i want to show specific mounted free disk space. E.g I want to show only /boot "Use%" figure and it should match with df -h command figure.

Please find my script for reference as follows by clicking link named Actual Script.

Actual Script


Solution

  • The df function from Filesys::Df module returns a reference to a hash (perldoc perlreftut) with fs info fields

    Example:

    $VAR1 = {
        user_bavail => '170614.21875',
        user_blocks => '179796.8203125',
        user_fused  => 408762,
        used        => '9182.6015625',
        fused       => 408762,
        bavail      => '170614.21875',
        user_used   => '9182.6015625',
        su_bavail   => '180077.20703125',
        ffree       => 11863876,
        fper        => 3,
        user_favail => 11863876,
        favail      => 11863876,
        user_files  => 12272638,
        blocks      => '189259.80859375',
        su_favail   => 11863876,
        files       => 12272638,
        per         => 5,
        su_blocks   => '189259.80859375',
        bfree       => '180077.20703125',
        su_files    => 12272638
    };
    

    So you free space is

    my $ref = df($dir, 1);
    print $ref->{bavail} . " bytes\n";