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_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.
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 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