Какой каталог занимает наибольшее пространство

Дженкинс прекратил строительство, и я вижу из df: / var maxed. После этого я вижу, что виновником является / var / lib / jenkins

52K alternatives ... 4.0K games 2.3G jenkins <--this one 4.0K logrotate.status ... 12M yum 2.4G total 

Однако, когда я вхожу в каталог jenkins, чтобы посмотреть, какая папка потребляет большую часть этого 2,3 ГБ, есть некоторые странные результаты:

 $ sudo du -csh * 16K config.xml 0 Connection Activity monitoring to slaves.log 0 Download metadata.log 0 Fingerprint cleanup.log 7.3M fingerprints 4.0K hudson.maven.MavenModuleSet.xml 4.0K hudson.model.UpdateCenter.xml 4.0K hudson.scm.CVSSCM.xml 4.0K hudson.scm.SubversionSCM.xml 4.0K hudson.tasks.Ant.xml 4.0K hudson.tasks.Mailer.xml 4.0K hudson.tasks.Maven.xml 4.0K hudson.tasks.Shell.xml 4.0K hudson.triggers.SCMTrigger.xml 4.0K identity.key.enc 4.0K jenkins.diagnostics.ooom.OutOfOrderBuildMonitor 4.0K jenkins.model.ArtifactManagerConfiguration.xml 4.0K jenkins.model.DownloadSettings.xml 4.0K jenkins.model.JenkinsLocationConfiguration.xml 4.0K jenkins.mvn.GlobalMavenConfig.xml 4.0K jenkins.security.QueueItemAuthenticatorConfiguration.xml 160M jobs 4.0K nodeMonitors.xml 12K Out of order build detection.log 41M plugins 4.0K proxy.xml 4.0K queue.xml.bak 4.0K secret.key 0 secret.key.not-so-secret 32K secrets 1.1M updates 8.0K userContent 12K users 4.0K Workspace clean-up.log 209M total 

От 2,3 до 209M. Может кто-нибудь объяснить это, чтобы я мог создать какое-то пространство? Я удалил рабочие пространства Jenkins из веб-интерфейса, но все равно вижу этот результат.

С помощью этой команды,

 sudo du -csh * 

вам не хватает скрытых каталогов, т. е. * расширяется до всех имен, начинающихся с чего-либо, кроме точки ( . ). Это означает, что все имена каталогов, начинающиеся с точки, не передаются команде du и их размер не учитывается.

В большинстве ситуаций добавление .??* К параметрам соответствовало бы потребностям:

 sudo du -csh .??* * 

Дополнительный .??* Расширяется до всех имен, начинающихся с точки и имеющих более двух символов. Цель состоит в том, чтобы исключить .. , то есть родительский каталог из аргументов.

Гипотетические файлы и каталоги, такие как .a все равно будут пропущены, а те, которые начинаются с тире ( - ), в лучшем случае игнорируются и в худшем случае вызывают ошибку.

Если у вас есть имена файлов или каталогов, начинающиеся с тире или имена, начинающиеся с точки, за которой следует один символ, эта расширенная версия будет правильно сообщать обо всех размерах каталогов:

 sudo du -csh -- .[^.] .??* * 

Здесь -- указывает, что du принимает аргументы, начинающиеся с тире, как имена, а не параметры .[^.] Добавляет к обрабатываемым именам все файлы и каталоги, начиная с точки, за которой следует какой-либо один символ, но точка. Это включает все возможные имена файлов и каталогов.

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

bash :

 shopt -s dotglob sudo du -csh -- * 

zsh :

 sudo du -csh -- *(D) 

ksh93 :

 FIGNORE='@(.|..)' sudo du -csh -- * 

Не обязательно ответ, который вы ищете, но что-то хорошее, о чем нужно знать:

 sudo du -max /var/lib/jenkins | sort -n 

Вероятно, это одна из тех команд, которые я чаще всего использую для такого рода вещей. «-a» включает общий размер каталога (так что вы увидите каталог, полный небольших файлов, как один большой каталог в конечном выпуске, а также просмотр всех файлов), а -x хранит его в одной файловой системе. Использование -m вместо -h делает его более трудным для чтения, но использование фиксированного блока облегчает более переносимое числовое сортирование (как, впрочем, все еще работает, когда у вас нет довольно новой команды сортировки, которая поддерживает модификатор -h).

Попробуйте ncdu . Это mc-подобный браузер, основанный на ncurses, который позволит вам узнать, какие каталоги наиболее заняты и, возможно, удалить те, которые вам не интересны, как видно на этом снимке экрана:

введите описание изображения здесь

Есть также приятные графические инструменты, которые помогают выяснить, что занимает много места в каталоге.

Мне нравится Filelight, который является частью KDE. Здесь он исследует / var / cache на моем компьютере. Зеленый и желтый связаны с apt , красный – java , а пурпурный – pbuilder .

Filelight

Внутренние круги заключают в себе непосредственные поддиректории, и они разбиваются на более мелкие куски во внешних кругах. Этот инструмент позволяет легко просматривать и просматривать то, что занимает много места – не только большие файлы, но и большие коллекции небольших файлов.