filesystem resource
Use the filesystem Chef InSpec resource to audit filesystem disk space usage.
Availability
Install
This resource is distributed with Chef InSpec and is automatically available for use.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_kbis the total partition size and is measured in kilobytes (KB).free_kbis the available space on the partition and is measured in kilobytes (KB).percent_freeis the percentage of available free space, and ranges from 0 to 100.
Properties
size_kb (Integer)
The size_kb property returns the total partition size in kb.
its('size_kb') { should be >= 32000 } free_kb (Integer)
The free_kb property returns the size of available space on the partition in kb.
its('size_kb') { should be >= 32000 } percent_free (Integer)
The percent_free property returns the available free space on the partition, ranges from 0 to 100.
its('percent_free') { should be >= 20 } type (String)
The type property returns the type of the file system.
its('type') { should cmp 'NTFS' } Examples
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 file systems (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