Сценарий не имеет аргументов и может запускаться с любыми привилегиями, в том числе с привилегиями root. Чтобы исключить строки с информацией об устройствах, которые вам не интересны, используйте команду grep −v после вызова df.
Результаты
Обычная команда df выводит результаты в виде, трудном для понимания, как показано в листинге 5.7.
Листинг 5.7. В выводе по умолчанию команды df сложно разобраться
$ df
Filesystem························512-blocks Used······Available Capacity Mounted on
/dev/disk0s2······················935761728··628835600 306414128 68 %······/
devfs···························· 375········375······ 0········ 100 %···· /dev
map −hosts························0··········0········ 0········ 100 %···· /net
map auto_home···················· 0··········0········ 0········ 100 %···· /home
localhost:/mNhtYYw9t5GR1SlUmkgN1E 935761728··935761728 0········ 100 %···· /Volumes/·········································································· Mobile-·········································································· Backups
Новый сценарий использует awk для увеличения удобочитаемости и преобразует 512-байтные блоки в более понятный формат, как можно видеть в листинге 5.8.
Листинг 5.8. Простой и понятный вывод сценария newdf
$ newdf
Filesystem························Size·· Used····Avail·· Capacity Mounted
/dev/disk0s2······················446.2G 299.86G 146.09G 68 %······/
devfs···························· 187K·· 187K····0······ 100 %···· /dev
map −hosts························0······0······ 0······ 100 %
map auto_home···················· 0······0······ 0······ 100 %
localhost:/mNhtYYw9t5GR1SlUmkgN1E 446.2G 446.2G··0······ 100 %···· /Volumes/····································································Mobile-····································································Backups
Усовершенствование сценария
В этом сценарии много недостатков, и один из самых значительных — наличие версий df, включающих информацию об использовании индексных узлов (inode) и даже внутреннюю информацию о процессоре, хотя она не представляет никакого интереса (как две записи map в примере выше). Сценарий был бы намного полезнее, если бы мы удалили вывод подобной ненужной информации, поэтому в первую очередь стоить применить флаг −P в вызове df, ближе к концу сценария
№ 38. Определение доступного пространства на диске
Коль скоро сценарий № 37 способен упростить вывод команды df, чтобы его было легче читать и понимать, тогда на более простой вопрос об объеме доступного дискового пространства в системе тем более можно ответить с помощью сценария командной оболочки. Команда df действительно сообщает информацию для каждого диска, но для ее осмысления требуется приложить некоторые усилия:
$ df
Filesystem····1K-blocks Used···· Available Use% Mounted on
/dev/hdb2···· 25695892··1871048··22519564··8 %·· /
/dev/hdb1···· 101089····6218···· 89652···· 7 %·· /boot
none··········127744····0········127744····0 %·· /dev/shm