filesystem resource
Use the filesystem
Chef InSpec resource to audit filesystem disk space usage.
Availability
Installation
This resource is distributed along with Chef InSpec itself. You can use it automatically.
Version
This resource first became available in v1.51.0 of InSpec.
The free_kb
, size_kb
, and type
properties became available in v3.6 of InSpec.
Note
Versions of this resource in Chef InSpec prior to 3.5.x offered a property size
, which returned a value in GB when on Windows and a value in KB on Linux, though it was documented to always return KB. All new code should use size_kb
which is unit-stable. The property size
will remain available in Chef InSpec v3 and 4, but will be deprecated in the future.
Syntax
A filesystem
resource block declares tests for disk space in a partition:
describe filesystem('/') do
its('size_kb') { should be >= 32 * 1024 * 1024}
its('free_kb') { should be >= 50 * 1024 }
its('percent_free') { should be >= 20 }
its('type') { should cmp 'ext4' }
end
where
filesystem('/')
states that the resource will look at the root (/) partition.size_kb
is the total partition size and is measured in kilobytes (KB).free_kb
is the available space on the partition and is measured in kilobytes (KB).percent_free
is the percentage of available free space, and ranges from 0 to 100.
Resource Property Examples
The following examples show how to use this Chef InSpec audit resource.
Test if the root partition is greater than 32000 KB
describe filesystem('/') do
its('size_kb') { should be >= 32000 }
end
Test that the root partition has more than 5GB free
describe filesystem('/') do
its('free_kb') { should be >= 5000000 }
end
Test if the C:\ partition is NTFS
Note that Windows filesystems (drives) are referred to without any slashes:
describe filesystem('c:') do
its('type') { should cmp 'NTFS' }
end
Test if the /var partition has sufficient free space
describe filesystem('/var') do
its('percent_free') { should be >= 20 }
end
Matchers
For a full list of available matchers, please visit our matchers page.
Was this page helpful?