Есть ли способ вычислить размер всех файлов, которые не управляются менеджером пакетов? Например , все вещи , которые в /opt
, /var/
, /usr/local
и т.д.
Я хотел бы выяснить, сколько дискового пространства используется установленными пакетами, и сравнить его с дисковым пространством, которое используют неуправляемые файлы.
Обновление: мой вопрос отличается от того, что занимает так много места на моем диске, помимо файловой системы?
Я знаю, что на apt/dpkg
основе дистрибутивов, таких как Debian и Ubuntu, менеджер пакетов, например, dpkg отслеживает все файлы, которые установлены с ним. Мы можем использовать такие инструменты, как dpkg-query
получение информации об этих пакетах.
Например, я попытался получить размер всех установленных пакетов с помощью этой команды:
dpkg-query -W --showformat='${Installed-Size}\n' | \
sort -k1,1n |awk '{s+=$1} END {print s}'
но я считаю, что это неверно, поскольку рассчитанная сумма очень близка к общему занимаемому пространству, /
и у меня хранится несколько ГБ файлов, /opt
которые не должны учитываться в этом результате.
По сути, я ищу некоторые инструменты, которые могут различать файлы, установленные менеджером пакетов, и все остальные файлы, которые находятся в корневой файловой системе, но не управляются менеджером пакетов.
Когда мой диск начинает заполняться, я хотел бы знать, если я:
a) Установлено слишком много пакетов или b) В файловой системе слишком много других файлов, которые занимают место.
Поэтому я хотел бы получить что-то вроде следующей информации о моей корневой файловой системе:
56GB of 60GB are used on '/':
* 32GB are used by installed packages
* 24GB are used by other files
Когда я использую инструмент, подобный ему baobab
, он не различает установленные файлы менеджера пакетов и любые другие файлы.
du -sh /opt /var /usr/local
покажет вам размер каждого интересующего вас каталогаОтветы:
Не существует надежного способа сделать это, поскольку пакеты могут при загрузке загружать файлы, о
dpkg
которых никто не узнает. Пакет будет очищен при удалении, поэтому он в некотором смысле управляется, ноdpkg
не отслеживает их. И хотя онdpkg
знает размеры из пакета, файлы, конечно, могли измениться после установки.В пакетах могут быть файлы
/opt
(например, Google Chrome)/var/
(слишком много примеров, чтобы перечислить, просто сделайтеdpkg -S /var
),/usr/local
(сертификаты SSL должны быть установлены с использованием каталога в/usr/local
одном примере).Достоверно, только каталоги , которые вы можете исключить это
/home
,/cdrom
,/mnt
,/media
(и/lost+found
, но это артефакт файловой системы, а не стандарт).Для меня команда, которую вы пробовали, и следующая команда находятся в разумном согласии и значительно отличаются от фактического использования файловой системы (список файлов из пакета находится в
/var/lib/dpkg/info/<package>.list
):Для сравнения:
Лично я просто проверяю размеры
/var/cache
и/home
.источник