Я знаю, что df -hl
выводит список всех моих разделов с его размером, использованием в процентах и доступным пространством.
Если я хочу вывести только размер и использование в процентах sda2
и sda3
, например, как я могу сказать Linux (Ubuntu) проверить их, суммировать и показать их мне?
ubuntu
command-line
user32398
источник
источник
Ответы:
Для
df
расчета итогов используйте--totals
опцию. Если вы хотите, чтобы итоги были только по некоторым выбранным дискам, укажите их в качестве аргументов.Примеры (и вывод с моего компьютера)
Это общая сумма для всех локальных креплений:
Ограничение несколькими дисками (обратите внимание, что если указанный путь не является точной точкой монтирования, используется ближайшая содержащая точка монтирования [см. Примечание в конце] ):
или используя
dev
имена:Дальнейшая настройка
Если вы хотите перечислить все монтирования, кроме «специальных», вы можете использовать
-x
опцию для исключения по типу раздела. (Используйте-T
опцию, чтобы показать типы.)Лично для интерактивного использования я использую следующий псевдоним bash (добавлен в
~/.bash_aliases
), чтобы исключить «нефизические» монтирования.Заметка
Указание путей в точках монтирования может иногда давать результаты в другой форме, указывая точный путь к точке монтирования. Например, на моем ноутбуке я использую
sshfs
мой локальный файловый сервер.Корень сервера (
/
) смонтирован в~/.server-root
. Однако на сервере смонтированы диски, о/disks/*
которыхdf
(на ноутбуке) «ничего не известно».Очевидно,
df
можно перечислить использование диска на разных монтировках на сервере, если указаны правильные пути. Тем не менее, он показывает те же «Файловая система» и «Установлено» для всех путей, поскольку (я считаю), что это единственная точка монтирования (связанная с этимsshfs
монтированием) в локальной таблице монтирования ядра.Другое дело: на самом деле не связано с вопросом, но связано с предыдущим ответом на вопрос.
Добавление чисел с помощью
awk
сценария (или аналогичного), как это делают некоторые ранее опубликованные ответы, не является хорошей идеей при использовании-h
флага. Это потому, что требуется специальная обработка. Вы не можете просто сделатьsize+=$2;
для поля, которое находится418M
в одном ряду и12G
в другом, и извлечь из него что-то полезное ...Для примера с
awk
добавлением500M
к10.2G
доходности510,2 из чего?
Здесь явно есть проблема. Так что, просто для запоминания , при выполнении (автоматического) вычисления на выходе
df
(и других, которые могут использовать «читаемые человеком» числа) . Убедитесь, что вы не используете этот-h
флаг и что вместо этого нормализован ввод данных в сценарий расчета (например, в байтах, блоках, килобайтах или что-либо еще) и выполните «масштабирование отображения» в конце. В большинстве языков сценариев и языков программирования нетрудно добавить что-то вроде:где значение в байтах, а порог - это значение порядка 1000. Результатом этого метода является то, что вы можете легко настроить его для получения печатных значений (исключая префикс) в желаемом диапазоне и с количеством значащих цифр для вашего выбор. По сравнению со случаем со стандартными утилитами с
-h
переключателями, где формат часто фиксирован.Конечно, этот расчет часто можно сделать более эффективным и / или элегантным, но это вопрос для конкретного языка, на котором он написан. Честно говоря, если он используется в пользовательском скрипте, который запускается только сейчас и потом, для интерактивного просмотра некоторая информация, эффективность на самом деле не является проблемой.
источник
Я думаю, что вы хотели сумму обоих
size
иuse%
источник
size+=$1
) к этому вопросу. Этот метод действительно не совместим с-h
опциейdf
.Вы бы использовали такой инструмент, как
awk
:Где:
/^\/dev\/sd[ab]/
шаблон для фильтрации только тех строк, которые начинаются с/dev/sda
или/dev/sdb
{ sum+=$5 }
добавьте пятое поле для любых совпадений вышеуказанного шаблонаВы можете найти некоторые полезные
awk
ссылки на вики- сайте Awk.info .источник
источник
size
,% used
иavailable
. Не только% используется. Также у @mdpc есть лучший способ выделить диск, но если вы хотите сопоставить с образцом, awk может сделать это:df -hl | awk '/sda2/{print $2,$5,$4}'
Если вы хотели это с оповещениями, я делаю это с IFTTT, Telegram и WebHooks (что все бесплатно)
источник