Вычислите размер управляемых и неуправляемых файлов на Ubuntu

Существует ли способ вычислить размер всех файлов, которыми не управляет диспетчер пакетов? Например, весь материал, который находится в /opt, /var/, /usr/local, и т.д.

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

Обновление: Мой вопрос отличается от того, Что занимает так много места на моем диске около файловой системы?

Я знаю это на apt/dpkg основанные дистрибутивы как Debian и Ubuntu, которую диспетчер пакетов, например, dpkg отслеживает все файлы, которые установлены с ним. Мы можем использовать инструменты как dpkg-query получить информацию abotu эти пакеты.

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

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, это не различает установленные файлы диспетчера пакетов и любой другой файл.

3
задан 13 April 2017 в 15:24

1 ответ

Нет никакого надежного способа сделать так, так как пакеты могут загрузить файлы при установке этого 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):

$ (cat /var/lib/dpkg/info/*.list | sudo xargs -d '\n' stat -c '%s' | awk '{c+=$1}END{print int(c/1024)}') 2>/dev/null
5572166

Сравните:

$ dpkg-query -W --showformat='${Installed-Size}\n' | awk '{c+=$1}END{print c}'
5462957
$ df /
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       18446076 6744528  10741500  39% /

Лично, я просто проверяю размеры /var/cache и /home.

0
ответ дан 1 December 2019 в 21:03

Другие вопросы по тегам:

Похожие вопросы: