
Пакеты распаковываются и компилируются на тестовой системе в формате /tmp/test
.
Мне нужнополучить максимальный размер каталога в любой момент временина всех этих этапах.
В данный момент я помогаю себе, записывая размер с помощью
du -sch /tmp/test >> /tmp/size.txt
в цикле. Но это очень грязный обходной путь и он неточен. Может быть, компьютер очень занят /tmp/test
и du
пропускает пиковый размер. Есть ли элегантное решение?
Доступные файловые системы — ext или btrfs, если это поможет.
Один читатель попросилпримеры использования:
При подготовке пакетов для Gentoo Linux мне нужно знать, сколько места требуется во время компиляции. Для некоторых пакетов, таких как Firefox, Boost или LibreOffice, очень важно, чтобы пакет проверял, что доступно достаточно свободного места.
Я написал скрипты, которые создают много временных файлов. Было бы интересно следить за размером папки.
Обновлять:В то же время я нашел sysdig
вариант, который выглядит многообещающим для этой задачи, но я пока не получил размер папки.
решение1
Одной из возможностей может быть мониторинг событий файловой системы и запуск некоторой команды регистрации при создании и удалении файлов. Есть некоторые инструменты, которые, вероятно, облегчат этот подход, напримерinotify,fswatch, илиLinux-фреймворк аудита. Вы можете либо попытаться записать общее дисковое пространство после каждого события, либо просто записать изменение дискового пространства, а затем использовать журналы для расчета максимального размера. См., например, следующий пост SuperUser:
Другой подход представлен в следующем посте:
Там предлагается смонтировать нужный каталог на отдельном разделе, а затем запуститьiostatна этом разделе. Это должно позволить вам постоянно регистрировать события ввода-вывода в этом каталоге.
Для дальнейшего обсуждения мониторинга дискового ввода-вывода вы можете обратиться к следующей публикации:
решение2
Запланируйте сценарий на каждую минуту
*/1 *. *. *. * script path
Сценарий должен быть следующим
#!/bin/bash
du -sch /tmp/|sed -n '1p' >>outputfile
Через некоторое время отсортируйте и выберите самый большой размер.