df
в первую очередь предназначен для потребления человеком и только иногда для сценариев в сценарии оболочки.Иногда вывод команд пользовательского пространства может быть трудным для анализа, поскольку они в первую очередь предназначены для потребления человеком, хотя вы можете передать некоторые аргументы некоторым командам пользовательского пространства для получения машинно-разборного вывода.При использовании таких языков, как Python, os
поддерживает большинство часто используемых системных функций, но вы также можете использовать высокоуровневые оболочки, такие как psutil
library.Я очень рекомендую psutil
, если вы делаете это часто.
Если вы не хотите использовать сторонние библиотеки, я бы рекомендовал использовать специальную файловую систему /sys/class/block
(или /sys/block
, есливы также хотите поддерживать устаревшие системы), или вы можете проанализировать /proc/partitions
.Специальные файловые системы /sys
, /dev
и /proc
- это стабильные интерфейсы ядра, разработанные для использования в сценариях. Вы взаимодействуете с этими специальными файлами, читая / записывая в эти специальные файлы, большинство интерфейсов довольно легко доступны.синтаксический анализ, поскольку они предназначены для использования в сценариях оболочки.