Я хотел бы иметь возможность показывать только использование диска для определенных разделов в ГБ и% после. В основном игнорируйте swap, tmpfs и т.д.

Я также хотел бы суммировать объем использования диска и вычитать из общего количества, чтобы получить свободное место.

Прямо сейчас у меня есть что-то вроде этого, но я не уверен, как использовать awk и выбрать разделы, которые я хочу считать.

df -h | awk '$5 ~ /\%$/ print $1 " " $5}'

Это для системы Debian.

Редактировать:

Так что понял, что я могу использовать /, чтобы ограничить результаты, однако, это только показывает мне, сколько бесплатно.

df -h / | awk '{ a = $4 } END { print a }'

2 ответа2

1

Я не уверен, что вы пытаетесь сделать с помощью awk , но вы излишне усложняете выражение. Все, что вам нужно для вывода файловой системы, свободного места и процента заполнения, это:

df -h /|awk '{ print $1, $4, $5 }'

Однако это не приведет к выравниванию заголовков с данными. Чтобы сохранить выравнивание, используйте что-то вроде:

df -h /|awk '{ printf "%-60s %6s %6s\n", $1, $4, $5 }'

Здесь я использовал широкое первое поле, потому что мой системный диск указан по UUID. Чтобы показать процент свободного места вместо занятости, вы можете использовать:

df -h /|awk '{ printf $5=="Use%"?"%-60s %6s   Free%%\n":"%-60s %6s %6s%%\n", $1, $4, 100-$5 }'

В этом случае знак % игнорируется в арифметическом выражении. Я не знаю, df округляет процент до ближайшего целого числа, как я и предполагал. Если она округляет вниз, то 100-$5 будет округлено вверх, поэтому вместо того, чтобы использовать 99-$5 , чтобы получить свободное пространство округляется вниз.

0

Вопрос не показывает точно, что является желаемым результатом, но это, кажется, соответствует тому, что вы хотите:

df -h | grep -E --color=never 'Filesystem|/dev/'

Строка Filesystem включена, так что вывод показывает удобные для человека заголовки столбцов. /dev/ string включена, потому что она устраняет системы udev и tmpfs.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .